直接访问Struts 2动作类属性

问题描述 投票:0回答:3

我想知道如果我们填充动作类属性,我们是否可以直接在结果JSP中访问它们而不将它们分配给动作类中的表单?

java jsp properties struts2 ognl
3个回答
0
投票

我认为你需要正确定义bean getter方法。比如说,如果一个属性被命名为id,并且你的行动中有一个名为getId()的方法。然后可以直接在JSP中访问它:

OGNL表达:

<s:property value="id"/>

要么

JSTL表达式:

<c:out value="${action.id}"/>

0
投票

您可以做的一件事是初始化ModelDriven类中的属性,您希望在调用操作时初始化它们。

http://struts.apache.org/release/2.1.x/docs/model-driven.html


0
投票

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中。

参考文献:

© www.soinside.com 2019 - 2024. All rights reserved.