我正在开发一个Struts 2项目,我需要实现2个友好的URL。由于我的2个网址需要类似网址/名称/ ID 和网址/ ID /标题,因此我找到管理此功能的唯一方法是使用第1步操作处理请求然后转发到正确的Action1或Action2,如下所示:
<action name="/*/*" class="web.ProcessRequestAction">
<param name="firstParam">{1}</param>
<param name="secondParam">{2}</param>
<result name="action1" type="chain">Action1</result>
<result name="action2" type="chain">Action2</result>
</action>
同时定义这两个动作:
<action name="Action1" class="web.Action1" method="execute">
<result name="success">/WEB-INF/content/Action1.jsp</result>
<result name="input">/WEB-INF/content/Action1.jsp</result>
<result name="error">/WEB-INF/content/Action1.jsp</result>
</action>
但是,如果我调用URL /参数/参数,然后在ProcessRequestAction上返回“Action1”,我将获得Action1.jsp(按预期),但是所有混乱,似乎都缺少所有CSS。 首先,我的方法是正确的吗?如果是这样,我在这里做错了什么,我能改进什么?
Thansk提前!
答案 0 :(得分:1)
至于你的CSS无法正常工作的原因,我们无法知道 - JSP是一个JSP,并遵循正常的JSP / HTML规则。
关于第一个问题:我建议反对行动链接;它积极地气馁,通常只会搞得一团糟。
如果不了解您的应用程序架构,很难提供有针对性的建议,但您可能会发现parameters in namespaces有帮助。
即使它不能立即应用,您也可以玩PatternMatcher
或ActionMapper
更符合您实际需求的游戏 - 实施取决于多种因素,尤其是名称,标识和标题网址组件的格式。
答案 1 :(得分:1)