我正在将struts 1迁移到struts 2.X
在请求范围中设置了属性,我在struts 1中访问我的jsp,如下所示:当bean不在范围内时我得到" .servlet.jsp.JspException:在任何范围内都找不到bean cat&#34 ;
<div class="titlePageCatalog"><bean:write name="desccategory" property="name" /></div>
在struts 2中我修改为
<s:iterator value="#request.cat">
<div class="titlePageCatalog"> <s:property value = "name"/></div>
</s:iterator>
但在struts 2中我没有任何例外。基本上我需要在没有设置cat时抛出异常。
任何人都可以建议如何在未设置
时获得jspexception答案 0 :(得分:1)
您应该在处理请求的Java代码中抛出异常,jsp是您的视图的一部分,您应该只关注提供结果/响应。抛出/处理的异常应该是您的Controller / Business层作业的一部分。这必须是s:iterator
不会在jsp版本中为exceptions struts2引发任何未调用的原因之一。
如果您的视图必须使用属性cat
,则应在从struts操作返回结果之前进行检查。如果您希望cat
为null并向用户显示相应的消息,那么您应该使用类似的内容
<s:if test="%{cat.isEmpty()}">
Some error occurred in this part of page but rest of result is being displayed
</s:if>
<s:else>
<s:iterator value="cat">
Your display code.
</s:iterator>
</s:else>