直接访问Struts 2动作类属性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了直接访问Struts 2动作类属性相关的知识,希望对你有一定的参考价值。

我想知道如果我们填充动作类属性,我们是否可以直接在结果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中。

参考文献:

以上是关于直接访问Struts 2动作类属性的主要内容,如果未能解决你的问题,请参考以下文章

Java实战之01Struts2-03属性封装类型转换数据验证

Struts2框架---result结果集

在Struts.xml中的result元素指的是:指定动作类的动作方法执行完后的结果视图.

Struts2笔记2

Struts2 模型驱动动作中的继承可能吗?

Java实战之01Struts2-05contextMAPELOGNL