java - 当值传递给 Action 类方法时,变量值被视为 null

标签 java jsp struts2 ognl struts-tags

在我的 jsp 文件中,我设置了变量 statusNum 的值。当我尝试将 statusNum 的值传递给方法 getStatusString() (此方法在 Action 类中定义)时,statusNum 的值一片空白。但是当我使用 ${statusNum} 显示时,我得到了值。这是我的代码。

<table style="width: 100%;">   
 <s:iterator value="emailList">
   <tr>
     <td style="width:39%"><s:property value='name'/></td>
     <td style="width:39%;"><s:property value='email'/></td>
     <s:set var="statusNum"><s:property value="status"/></s:set>
      ${statusNum} 
     <s:set var="stringNum" value="%{getStatusString(#statusNum)}"/>
  </tr>
 </s:iterator>
</table>

这是 Action 类中 getStatusString() 方法的框架

public String getStatusString(Integer sendStatus) {
      ------------- 
      ------------- //code returning string value
      -------------         
}

请帮我通过getStatusString()方法获取statusNum对应的status String值。

最佳答案

您应该尝试使用 <s:property value="%{getStatusString(#statusNum)}"/>标记以便调用操作方法。

Anwyay...在我看来这不是一个好的选择...为什么应该在 jsp 中调用操作方法并将业务层与表示层混合在一起?

更容易移动 Controller 内的所有内容并使用 jsp 来呈现结果。

我的意思是...您将单个操作分为两个不同的阶段。您的操作正在创建 CollectionemailList然后你在 jsp 中迭代你的集合。当您迭代时,您调用一个方法来获取状态字符串。

<小时/>

工作流程:操作 -> jsp -> 迭代 -> {method x n} -> 结果

<小时/>

为什么不在操作中准备状态字符串?通过这种方式,您将只打印该值,并且您的堆栈不会充满“垃圾”(如果我们可以这么说)。

<小时/>

工作流程:操作 -> jsp -> 迭代 -> 结果

<小时/>
<table style="width: 100%;">   
  <s:iterator value="emailList">
     <tr>
       <td style="width:39%"><s:property value='name'/></td>
       <td style="width:39%;"><s:property value='email'/></td>
       <td style="width:39%;"><s:property value='statusString'/></td>
     </tr>
  </s:iterator>
</table>

如果该字符串可能会随着时间的推移而改变,则使用 Ajax。为了让您的页面始终保持刷新并且以更安全的方式。

关于java - 当值传递给 Action 类方法时,变量值被视为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34262092/

相关文章:

Eclipse 上的 Java Struts Hibernate Web 应用程序

java - Spring数据,Oracle DB,java.sql.SQLException : Numeric Overflow

java - Java RMI 连接使用什么端口?

java - 带临时表的 Spring JDBCTemplate

java - 验证除验证框架以外的 struts2 表单

html - div中的Struts2标签显示为空

Java:如何在属性文件中写入 "Arabic"?

java - xml中textview前后的空白

java - 在 Java 代码中的 javascript 函数中使用变量

javascript - 如何在Textarea的右上角显示当前时间,在左下角显示消息文本?