web.xml:
<init-param>
<param-name>definitions-config</param-name>
<param-value>>/WEB-INF/tiles-defs.xml</param-value>
</init-param>
<jsp-config>
<taglib>
<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib></jsp-config>struts-config.xml<action-mappings>
<action path="/Welcome" forward="/welcomeStruts.jsp"/>
<action path="/login"
input="/Inbox.jsp"
type="com.frontier.action.doTiles">
</action>
<action path="/test"
input="/Inbox.jsp"
scope="request"
type="com.frontier.action.doTiles"
validate="true">
<forward name="success" path="eat.test"></forward>
</action>
</action-mappings> <message-resources parameter="com.seagate.calib.struts.ApplicationResources" />
<!-- =============== tiles plugin ============== -->
<plug-in className="org.apache.struts.tiles.TilesPlugin" >
<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
<set-property property="definitions-parser-validate" value="true"/>
<set-property property="moduleAware" value="true" />
<set-property property="extends" value="true"/>
</plug-in>tiles-defs.xml:<tiles-definitions>
<definition name="login" extends="mainlayout">
<put name="body" value="/WEB-INF/login/login.jsp"/>
</definition>
<definition name="eat.test" path="/WEB-INF/layout/layout.jsp">
<put name="header" value="header"/>
<put name="topbar" value="topbar"/>
<put name="menu" value="menu"/>
<put name="body" value="/WEB-INF/test/test.jsp"/>
<put name="footer" value="footer"/>
</definition>
<definition name="mainlayout" path="/WEB-INF/layout/layout.jsp">
<put name="header" value="header"/>
<put name="topbar" value="topbar"/>
<put name="menu" value="menu"/>
<put name="body" value="/WEB-INF/layout/body.jsp"/>
<put name="footer" value="footer"/>
</definition>
<definition name="footer" path="/WEB-INF/layout/footer.jsp"/>
<definition name="header" path="/WEB-INF/layout/header.jsp"/>
<definition name="menu" path="/WEB-INF/layout/menu.jsp"/>
<definition name="topbar" path="/WEB-INF/layout/topbar.jsp"/>
<definition name="${YOUR_DEFINITION_HERE}">
</definition></tiles-definitions>
问题: 运行http://localhost:7001/edcs/Calibration/login.do 和http://localhost:7001/edcs/Calibration/test.do
没有任何显示(页面为空显示)
<init-param>
<param-name>definitions-config</param-name>
<param-value>>/WEB-INF/tiles-defs.xml</param-value>
</init-param>
<jsp-config>
<taglib>
<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib></jsp-config>struts-config.xml<action-mappings>
<action path="/Welcome" forward="/welcomeStruts.jsp"/>
<action path="/login"
input="/Inbox.jsp"
type="com.frontier.action.doTiles">
</action>
<action path="/test"
input="/Inbox.jsp"
scope="request"
type="com.frontier.action.doTiles"
validate="true">
<forward name="success" path="eat.test"></forward>
</action>
</action-mappings> <message-resources parameter="com.seagate.calib.struts.ApplicationResources" />
<!-- =============== tiles plugin ============== -->
<plug-in className="org.apache.struts.tiles.TilesPlugin" >
<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
<set-property property="definitions-parser-validate" value="true"/>
<set-property property="moduleAware" value="true" />
<set-property property="extends" value="true"/>
</plug-in>tiles-defs.xml:<tiles-definitions>
<definition name="login" extends="mainlayout">
<put name="body" value="/WEB-INF/login/login.jsp"/>
</definition>
<definition name="eat.test" path="/WEB-INF/layout/layout.jsp">
<put name="header" value="header"/>
<put name="topbar" value="topbar"/>
<put name="menu" value="menu"/>
<put name="body" value="/WEB-INF/test/test.jsp"/>
<put name="footer" value="footer"/>
</definition>
<definition name="mainlayout" path="/WEB-INF/layout/layout.jsp">
<put name="header" value="header"/>
<put name="topbar" value="topbar"/>
<put name="menu" value="menu"/>
<put name="body" value="/WEB-INF/layout/body.jsp"/>
<put name="footer" value="footer"/>
</definition>
<definition name="footer" path="/WEB-INF/layout/footer.jsp"/>
<definition name="header" path="/WEB-INF/layout/header.jsp"/>
<definition name="menu" path="/WEB-INF/layout/menu.jsp"/>
<definition name="topbar" path="/WEB-INF/layout/topbar.jsp"/>
<definition name="${YOUR_DEFINITION_HERE}">
</definition></tiles-definitions>
问题: 运行http://localhost:7001/edcs/Calibration/login.do 和http://localhost:7001/edcs/Calibration/test.do
没有任何显示(页面为空显示)
http://localhost:7001/edcs/Calibration/login.do 只带项目名就好了。 .不要带路径
如项目名是edcs 则:
http://localhost:7001/edcs/login.do
以前写的一篇文章 .希望对你有所帮助 ..
2 <action forward="/WEB-INF/layout/menu.jsp" path="/login2" />
------可以,显示正常
3 action path="/test"
input="/Inbox.jsp"
scope="request"
type="com.frontier.action.doTiles"
validate="true">
<forward name="success" path="eat.test"></forward>
</action>----什么都不显示,也没有异常出现.
java.lang.NullPointerException
at org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:113)
at org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96)
at org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3231)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2002)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1908)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1362)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
通过action-mappings配置你的tiles组件:
<action-mappings>
<action path="/index" type="org.apache.struts.actions.ForwardAction"
parameter="index-definition">
</action>
</action-mappings> 来自
所以上面应该是:
<action path="/test"
input="/Inbox.jsp"
scope="request"
type="com.frontier.action.doTiles"
validate="true"
parameter="eat.test">
</action>
好久没用..我也忘得差不多了。 .希望对你有用 ...