【问题标题】:Struts 1.2 : Unable to load a jsp as Action class isn't calledStruts 1.2:无法加载 jsp,因为未调用 Action 类
【发布时间】:2015-06-19 04:27:01
【问题描述】:

我正在增强 Struts 1.2 中预先存在的代码。 我应该添加一个名为prcm admin 的选项卡。 我在主要的 xml 文件和 jsp 中做了以下条目。 我也有一个带有方法getViewPriceManagementAdmin的动作类。

当我尝试调试这段代码时,似乎控制根本没有到达动作类。

我检查了所有的电话,一切看起来都是正确的。我的应用程序中只加载了一个空白选项卡。

我还分享了我在控制台上遇到的错误。

struts-config.xml

<action path="/prcmMgmtAdmin" 
        type="mypackage.web.action.prcmadm.PrcmMgmtAdminAction" name="prcmMgmtForm" 
        parameter="methodName" scope="request"
        validate="false">           
    <forward name="PrcmMgmtAdmin" path="prcmMgmtAdmin" contextRelative="true" />
</action>

action-servlet.xml

<bean name="/prcmMgmtAdmin" class="mypackage.web.action.prcmadm.PrcmMgmtAdminAction">
</bean>

tiles-def.xml

<definition name="prcmMgmtAdmin" extends="template" >
    <put name="body"   value="PrcmMgmtAdminView" />
</definition>
<definition name="PrcmMgmtAdminView" page="/WEB-INF/jsp/prcmMgmtAdminView.jsp" >
</definition>

header.jsp

case "PrcmMgmtAdmin": window.location = "prcmMgmtAdmin.domethodName=getViewPriceManagementAdmin";
break;

控制台输出

23:17:23,721 INFO  [STDOUT] 06-18-2015, 23:17:23721, DEBUG, [org.springframework.jdbc.core.StatementCreatorUtils], - Setting SQL statement parameter value: column index 1, parameter value [STAT_CD], value class [java.lang.String], SQL type 1
23:17:32,236 INFO  [STDOUT] 06-18-2015, 23:17:32235, ERROR, [mypackage.web.action.prcmadm.PrcmMgmtAdminAction], - mypackage.web.security.UserPrincipal@bb51061
23:17:32,237 INFO  [STDOUT] 06-18-2015, 23:17:32237, ERROR, [mypackage.web.action.prcmadm.PrcmMgmtAdminAction], - errorPage::null
23:17:32,292 INFO  [STDOUT] 06-18-2015, 23:17:32287, ERROR, [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/markdownWeb].[jsp]], - Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
    at org.apache.jsp.WEB_002dINF.jsp.common.error_jsp._jspService(error_jsp.java:110)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:387)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:590)
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:505)
    at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
    at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:614)
    at org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:101)
    at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:137)

【问题讨论】:

  • 错误日志告诉你错误是什么。日志显示它正在进入PrcmMgmtAdminAction,并将errorPage 设为空。你也有/markdownWeb.jsp吗?如果您可以粘贴来自PrcmMgmtAdminAction 的相关代码,将会很有帮助。

标签: java jsp struts config struts1


【解决方案1】:

当然你不能达到这个动作,因为你在 JS 代码中有错误的 url。

case "PrcmMgmtAdmin": window.location = "prcmMgmtAdmin.do?methodName=getViewPriceManagementAdmin";
break;

可以使用html:rewrite标签重写JSP中的url

case "PrcmMgmtAdmin": window.location = "<html:rewrite action='prcmMgmtAdmin'/>"+"?methodName=getViewPriceManagementAdmin";
break;

【讨论】:

    猜你喜欢
    • 2013-05-07
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    • 2017-10-09
    • 2017-12-15
    • 1970-01-01
    • 1970-01-01
    • 2018-12-16
    相关资源
    最近更新 更多