Struts从操作重定向到Jsp,然后再返回到同一个动作类,给出空指针异常

时间:2013-07-19 07:25:08

标签: java jsp struts

我使用了affuse框架工作创建了动作类和jsp。但问题是,当我在jsp fReleaseList.jsp中按下add按钮时,我正在使用重定向exmple重定向到动作类是FReleaseAction.java并初始化实例变量“fRelease”并重定向到fReleaseForm.jsp并且当按下保存按钮时它agin重定向到同一个动作类 FReleaseAction.java和那里的“fRelease”变量将为null。此配置文件如下所示,

                     /WEB-INF/pages/fReleaseList.jsp         

    <action name="editFRelease" class="com.vxl.appanalytix.webapp.action.FReleaseAction" method="edit">
        <result>/WEB-INF/pages/fReleaseForm.jsp</result>
        <result name="error">/WEB-INF/pages/fReleaseList.jsp</result>
    </action>

    <action name="saveFRelease" class="com.vxl.appanalytix.webapp.action.FReleaseAction" method="save">
        <result name="input">WEB-INF/pages/fReleaseForm.jsp</result>
        <result name="cancel" type="redirectAction">fReleases</result>
        <result name="delete" type="redirectAction">fReleases</result>
        <result name="success" type="redirectAction">fReleases</result>
    </action>
    <!--FReleaseAction-END-->

1 个答案:

答案 0 :(得分:1)

是。除非您在表单中使用该变量,否则Struts不会返回该值。 要重新发送值,您需要在jsp页面中设置HiddenVariable

简单来说,如果你有这样的文本框 生成JSP页面时,struts会生成一个隐藏变量,当您提交表单时,隐藏的变量数据将被转换并存储/映射到Bean数据。

如果你没有在jsp页面中使用Bean变量,Struts不会为它生成隐藏变量类型,因此当它转到Action类时,它将创建新的bean并且不设置旧的bean数据。