如何直接访问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 Class 中的属性,您希望在调用操作时初始化这些属性。

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


0
投票

Struts2/XWork1及其taglib是面向OGNL的,它使用 a

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")%>

在第一个标签中,操作属性作为 OGNL 表达式访问
在第二行作为 JSTL 表达式。
在第三行小脚本中。

参考资料:

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