我想知道如果我们填充动作类属性,我们是否可以直接在结果JSP中访问它们而不将它们分配给动作类中的表单?
我认为你需要正确定义bean getter方法。比如说,如果一个属性被命名为id
,并且你的行动中有一个名为getId()
的方法。然后可以直接在JSP中访问它:
OGNL表达:
<s:property value="id"/>
要么
JSTL表达式:
<c:out value="${action.id}"/>
您可以做的一件事是初始化ModelDriven类中的属性,您希望在调用操作时初始化它们。
http://struts.apache.org/release/2.1.x/docs/model-driven.html
Struts2 / XWork1及其taglib面向OGNL,它使用
valueStack
来表示所有动作属性。这些值不能直接用于JSP2.0 / JSTL1.1的表达式语言。
要通过OGNL访问它,您只能在Struts标记属性中使用OGNL。例如
public String MyAction extends ActionSupport {
private String myAttr;
//getter and setter here
...
<s:set var="myAttrz" value="myAttr" scope="request"/>
${myAttrz} or ${myAttr} will just print out the value.
<%=request.getAttribute("myAttrz")%>
在第一个标记中,action属性作为OGNL表达式进行访问 在第二行作为JSTL表达式。 在第三行scriptlets中。
参考文献: