Struts2 2.5 用ognl表达式从action里面取值,显示在jsp页面,为什么不能根据性别取出对象呢?看下图

我可以根据ID,username,age,address获取对象,就是不能用sex获取对象,怎么回事了?想了几天还想不明白!... 我可以根据ID,username,age,address获取对象,就是不能用sex获取对象,怎么回事了?想了几天还想不明白! 展开
 我来答
匿名用户
2017-12-31
展开全部

struts2中使用的OGNL表达式在拿action中的值的时候无论如何都取不到。

UserAction.java   这个类查出了一个“lists”,也就是我在jsp页面中要取的值。

[java] view plain copy

  • package tm.change.action;  

  • import java.util.ArrayList;  

  • import java.util.List;  

  • import tm.change.dao.UserDao;  

  • import tm.change.dao.impl.UserDaoImpl;  

  • import tm.change.domain.User;  

  • public class UserAction {  

  • private UserDao dao = new UserDaoImpl();  

  • private List<User> lists = new ArrayList<>();  

  • public String list(){  

  • lists = dao.findObject(0, 2);  

  • return "list";  

  • }  

  • }  



  • list.jsp   

    在这个页面上,我要取上面这个类中的lists,然后生成一张table。但是无论如何都取不到值。

    [html] view plain copy

  • <%@ page language="java" contentType="text/html; charset=UTF-8"  

  • pageEncoding="UTF-8"%>  

  • <%@ taglib prefix="s" uri="/struts-tags"%>  

  • <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  

  • <html>  

  • <head>  

  • <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  

  • <title>Insert title here</title>  

  • </head>  

  • <body>  

  • <table border="1px">  

  • <thead>  

  • <tr>  

  • <th>姓名</th>  

  • <th>年龄</th>  

  • <th>邮箱</th>  

  • </tr>  

  • </thead>  

  • <tbody>  

  • <s:iterator var="entity" value="lists">  

  • <tr>  

  • <td><s:property value="name" /></td>  

  • <td><s:property value="age" /></td>  

  • <td><s:property value="email" /></td>  

  • </tr>  

  • </s:iterator>  

  • </tbody>  

  • </table>  

  • </body>  

  • </html>  



  • 原因总结:通过浏览了好多博客,找到了原因。

    struts2采用的是映射机制,就是说你在action定义的变量通过set和get方法在页面中是可以得到数据的也就是说如果你想要在页面中取得action中的值的话就一定要把它定义出来,并且给他至少一个get方法,你可以吧MessageStore定义到你的action中去然后通过getMessageStore映射到页面上然后再通过struts2的标签提取其中的数据。

    因此,我在UserAction.java中给lists 写了一个get和set方法

    果然,立刻就拿到了值。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式