问题描述
最近我们修复了struts2的'S2-045'问题.我更新了所有与struts2相关的jar文件,包括freemarker、ognl、xWork 等.我使用 tomcat8 来部署我的动态 Web 项目.启动 tomcat-server 时没有任何 Exceptions.但是似乎出现了一些问题:一些值(从 db 获取)应该显示在 jsp 页面上不再显示.没有抛出 Exceptions.我还可以看到我已经在 Action Classes 中正确获取了对象.
以下是一些例子
Recently we fixed the struts2's 'S2-045' problem.I updated all the struts2 related jar files including freemarker, ognl, xWork,etc. I use tomcat8 to deploy my dynamic web project. There were not any Exceptions while starting the tomcat-server. But some problems seemed occur: some values(got from db) should be displayed on the jsp pages dose not show up any more. There is no Exceptions thrown. I also can watch that I have already got the very Objects correctly in the Action Classes.
the following is some examples
// index.jsp ----- here is the list I want to show on the page. // the list is the type of List<News> (Class News is my bussiness Class). // I want to get the 'fTitle' and 'fCreatetime_s' from 'News' but they // do not show up! (This used to be working very well.) <s:bean name="org.ulibrary.web.Getarclist"> <s:iterator value="list"> <li> <span class="listTitle"> <a target="_blank" href="ViewArc.action? uuid=${UUID}">${fTitle}</a> </span> <span class="listDate">${fCreatetime_s}</span> </li> </s:iterator> </s:bean> //=================================================================
以下是相关字段 id News.java
Following is the ralated fields id News.java
// News.java (**just some ralated fields**) class News{ @Id @GeneratedValue(generator = "system-uuid") @GenericGenerator(name = "system-uuid", strategy = "uuid") @Column(name = "f_uuid", length = 32, unique = true) private String UUID; @Column(name = "f_title", length = 200) private String fTitle; @Transient private String fCreatetime_s; public String getUUID() { return UUID; } public void setUUID(String uuid) { UUID = uuid; } public String getFTitle() { return fTitle; } public void setFTitle(String title) { fTitle = title; } public String getFCreatetime_s() { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); return formatter.format(Long.valueOf(fCreatetime)); } public void setFCreatetime_s(String createtime_s) { fCreatetime_s = createtime_s; } }
然后是 GetarcList.java
//GetarcList.java (just include some related fields) class GetarcList{ private List list; public void setList(List list) { this.list = list; } //!!!!!!$$$$$$$$--- Attention -----$$$$$$$$$!!!!!!!!!!! // this method returns a List<News> , I can successfully get every value of 'News' in the list public List getList() throws AuctionException{ String orderby_str = (String) OrderByMap.get(String.valueOf(orderby)); list = webTagManager.getArcList(row, typeid, titlelen, infolen, orderby_str + " " + orderway); return list; } }
我认为这可能是由 OGNL 或 JSP 相关的 jar 文件引起的.我在 index.jsp 或 java-files 中没有发现任何问题.
I think this maybe caused by the OGNL or JSP related jar-files. I didn't find any problems in my index.jsp or java-files.
推荐答案
你需要使用如下格式的getter/setter.只有一个小写字母开头的属性不是大写的.
You need to use getters/setters in the following format. Properties with only one starting lowercase letter are not uppercased.
public String getfTitle() { return fTitle; } public void setfTitle(String title) { fTitle = title; }