struts2 不能解析字段的问题
2010-05-13 20:51
375 查看
最近在struts2的项目开发中,碰到一个小问题:action中的字段customerName,在<s:url>的<s:param>中得不到。调试了将近一天的时间,才有结果。
现在,解释一下出现问题的原因。
首先,显示相应的代码片段。
jsp代码(红字为解析不到的<s:param>):
<s:textfield name="customerName" value="customerName" />
<s:iterator value="resultList" status="list">
<s:url id="url">
<s:param name="customerName1" value="customerName" />
<param name="customerName2" value="#list.customerName" />
</s:url>
</s:iterator>
Action的代码:
public class MyAction extends ActionSupport{
String customerName;
List<ResultBean> resultList;
public String getCustomerName() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
public List<ResultBean> getResultList() {
return resultList;
}
public void setResultList(List<ResultBean> resultList) {
this.resultList = resultList;
}
public String excute(){
...
...
}
}
ResultBean类型的定义:
public class ResultBean {
String customerName;
public String getCustomerName() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
}
不能解析的原因是:
ResultBean类中含有相同名称的字段——customerName,<s:iterator>标签中优先解析ResultBean中的字段。ResultBean和action中字段名相同,如出现上述情况:
<s:param name="customerName1" value="customerName" />
页面将不会解析。
现在,解释一下出现问题的原因。
首先,显示相应的代码片段。
jsp代码(红字为解析不到的<s:param>):
<s:textfield name="customerName" value="customerName" />
<s:iterator value="resultList" status="list">
<s:url id="url">
<s:param name="customerName1" value="customerName" />
<param name="customerName2" value="#list.customerName" />
</s:url>
</s:iterator>
Action的代码:
public class MyAction extends ActionSupport{
String customerName;
List<ResultBean> resultList;
public String getCustomerName() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
public List<ResultBean> getResultList() {
return resultList;
}
public void setResultList(List<ResultBean> resultList) {
this.resultList = resultList;
}
public String excute(){
...
...
}
}
ResultBean类型的定义:
public class ResultBean {
String customerName;
public String getCustomerName() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
}
不能解析的原因是:
ResultBean类中含有相同名称的字段——customerName,<s:iterator>标签中优先解析ResultBean中的字段。ResultBean和action中字段名相同,如出现上述情况:
<s:param name="customerName1" value="customerName" />
页面将不会解析。
相关文章推荐
- 从后台action传过来的字符串不能被解析html代码 解决办法和struts2 里escape="false"的问题
- struts2中s:datetimepicker不能显示的问题
- ubuntu不能解析DNS的问题
- Android中不能解析GIS类的XML文件或不能引入GIS类问题
- linux不能解析DNS问题
- IE6不能正常解析CSS文件问题的解决方法及原因分析
- 【Java EE 学习 54】【OA项目第一天】【SSH事务管理不能回滚问题解决】【struts2流程回顾】
- 字段含多个text、image字段,配完复制后,不能保存的问题解决方法
- struts.xml中的default-action-ref解决不能解析网址问题
- 布局资源不能解析的问题
- oracle 数据库,通过resultSet.getObject()获取时间类型截断的问题的解析(格式化时间不能完全输出,也就是只能到日,小时后面的没有了)
- Struts2对页面上的My97DatePicker日期控件输入的日期字符串,不能进行自动转型问题
- PD中建CDM模型,一个Diagram中有两张表,字段不能重复的问题解决
- CentOS系统DNS不能解析问题
- 关于struts2中s:form标签不能处理多个s:submit的问题
- 浅谈java里的EL表达式在JSP中不能解析的问题
- Linux下 Apache 不能解析php 和不能解析 mht shtml 文件格式问题汇总
- win7系统 QQ能正常登陆,网页不能正常访问但nslookup与ping都能正常解析网址问题解决
- Struts2配置了refreshModelBeforeResul为true后仍然不能刷新model 的问题
- [Struts2]s:combobox标签在使用出现问题:改变下拉列表的选中值,文本框的值不能随着被改变