如何使用Struts2中的Bean将对象从操作类传递到JSP?
我必须将Bean类的对象从操作类发送回JSP。我正在我的动作类中实例化Bean类,并在我的动作类中设置一些值。
ElasticitiesVariable elasticitiesVariable = new ElasticitiesVariable();elasticitiesVariable.setAuto_Auto_cost_peak("-0.047");
elasticitiesVariable.setAuto_Ride_cost_peak("0.000");
elasticitiesVariable.setAuto_Van_cost_peak("0.000");
elasticitiesVariable.setAuto_Transit_cost_peak("0.050");
elasticitiesVariable.setAuto_Bike_cost_peak("0.000");
在我的JSP中,我也声明了bean类。
<s:bean name="org.apache.struts.register.model.ElasticitiesVariable" var="elasticitiesBean" /><td class="edit_area">
<s:property value="#elasticitiesBean.auto_Auto_cost_peak" /></td>
在bean类中,我用public
getter和setter声明了变量private。但是在JSP中,值变为空。调试后,我发现动作类没有问题。但是当命令转到bean类时,值变为null
。
回答:
第一次在操作中实例化bean,第二次在JSP中。它与您在操作中填充的bean不同,并且不包含值。如果要从第一个bean获取值,则应为包含bean实例的变量创建变量。您还应该创建更改器以访问该bean的属性。在JSP您可以访问第一个bean,因为操作实例是对top
的valueStack
。只需使用
<s:property value="elasticitiesBean.auto_Auto_cost_peak" />
请注意,如果没有#
OGNL,则不会搜索其他变量,它将直接查找valueStack
。但不要在bean
标记内执行此操作,因为新的(第二个)实例被推到,valueStack
并且搜索是从上到下执行的,因此它可能与bean的属性匹配。只需删除bean
标签。
以上是 如何使用Struts2中的Bean将对象从操作类传递到JSP? 的全部内容, 来源链接: utcz.com/qa/404514.html