在测试我正在研究的基于小型apache strut的web应用程序时收到以下错误,问题的关键在于某种方式将一个空的httpservletrequest请求参数传递给一个已扩展的Action类中的Actionforward Execute函数?
我对struts使用的了解是有限的,对这种错误行为的解释超出了我的意见,任何帮助都非常感激。下面包括例外情况..
javax.servlet.ServletException: null
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.lang.NumberFormatException: null
java.lang.Integer.parseInt(Unknown Source)
java.lang.Integer.parseInt(Unknown Source)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache
Tomcat/5.5.4 logs.
答案 0 :(得分:1)
抱歉没有尽快回复......
描述的错误是由struts-config.xml中的操作映射中缺少serviceForm Bean规范引起的。当用户第一次导航到违规网页时,ServiceForm bean不存在,因此创建了存储相对actionForm值(没有发生错误)。
然而,当用户尝试在其他地方之后导航回网页时,尝试访问创建的serviceForm bean数据,这些数据尚未在strut中指定..因此空指针崩溃..
EG。 name =“serviceForm”缺失。
<action path="/pages/networkconfig/listUIServices"
type="com.UIServiceListAction"
name="serviceForm"
scope="request"
validate="false">
<forward name="view" path="/pages/networkconfig/uiservices_list.jsp"/>
</action>
希望这种解释是有帮助的。