Apache 调用分幅时putAttribute中的NPE
我试图学习Struts2 f/w与tiles集成,但在实现时,我在putAttributeTag中获得了NPE 单击“登录”后,我需要移动到主页,但打开主页时出现异常 下面是一些相关的代码 struts.xmlApache 调用分幅时putAttribute中的NPE,apache,tomcat,struts2,tiles,Apache,Tomcat,Struts2,Tiles,我试图学习Struts2 f/w与tiles集成,但在实现时,我在putAttributeTag中获得了NPE 单击“登录”后,我需要移动到主页,但打开主页时出现异常 下面是一些相关的代码 struts.xml <package name="default" extends="struts-default" namespace="/"> <result-types> <result-type name="dispatcher" class="
<package name="default" extends="struts-default" namespace="/">
<result-types>
<result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>
<result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"></result-type>
</result-types>
<action name="signin" class="actions.SigninAction" method="execute">
<result name="success" type="tiles">home</result>
</action>
</package>
堆栈跟踪
org.apache.tiles.TilesException: ServletException including path '/baseLayout.jsp'.
org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:614)
org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:246)
org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:105)
及
及
如果您能指出我的错误就好了。NPE的原因是在
baseLayout
中,我使用了puttribute
标记,而不是insertAttribute
<div id="content" class=".content">
<tiles:putAttribute name="content"></tiles:putAttribute>
</div>
当计算该puttribute
时,则缺少value
参数。因此,导致投掷NPE
修正:
使用insertAttribute
标记,因为我们将获取值并将其插入baselayout
还有一些我在经历之后改变的事情如下:
.tiles
用作来自其他视图技术的平铺定义的标记/
,并相应地调整struts.xml
我做了几处修改,解决了这个问题。我犯了n个错误。
ServletException including path '/baseLayout.jsp'.
ServletException including path '/baseLayout.jsp'.
org.apache.tiles.TilesException: ServletException including path '/baseLayout.jsp'.
org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:614)
org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:246)
org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:105)
org.apache.tiles.util.TilesIOException: ServletException including path '/baseLayout.jsp'.
org.apache.tiles.servlet.context.ServletTilesRequestContext.wrapServletException(ServletTilesRequestContext.java:298)
org.apache.tiles.servlet.context.ServletTilesRequestContext.forward(ServletTilesRequestContext.java:200)
org.apache.tiles.servlet.context.ServletTilesRequestContext.dispatch(ServletTilesRequestContext.java:179)
org.apache.tiles.context.TilesRequestContextWrapper.dispatch(TilesRequestContextWrapper.java:72)
java.lang.NullPointerException
org.apache.tiles.jsp.taglib.PutAttributeTag.execute(PutAttributeTag.java:204)
org.apache.tiles.jsp.taglib.RoleSecurityTagSupport.doEndTag(RoleSecurityTagSupport.java:75)
org.apache.jsp.baseLayout_jsp._jspx_meth_tiles_005fputAttribute_005f0(baseLayout_jsp.java:188)
org.apache.jsp.baseLayout_jsp._jspService(baseLayout_jsp.java:129)
<div id="content" class=".content">
<tiles:putAttribute name="content"></tiles:putAttribute>
</div>