Struts2 + WAS 6.1 + Java EE

时间:2011-01-12 09:56:23

标签: java struts2 websphere

这是“struts.xml”:

<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" />

<package name="register" namespace="/" extends="struts-default">

    <action name="Register" class="com.struts2.RegisterAction">
        <result name="input">/register.jsp</result>
        <result type="redirectAction">register.jsp</result>
    </action>

</package>


在Tomcat中工作得非常好但总是在WAS 6.1中生成以下错误:

“没有针对命名空间/和操作名称映射的操作。 - [未知位置]”

但是如果我像下面这样修改“struts.xml”那么它在WAS6.1中运行良好:

<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" />

<package name="register" namespace="/register" extends="struts-default">

    <action name="Register" class="com.struts2.RegisterAction">
        <result name="input">/register.jsp</result>
        <result type="redirectAction">register.jsp</result>
    </action>

</package>

<package name="default" namespace="/" extends="struts-default">
    <default-action-ref name="index" />
    <action name="index">
        <result type="redirectAction">
            <param name="actionName">Register</param>
            <param name="namespace">/register</param>                
        </result>
    </action>
</package>

我完全无法理解是什么原因。它一直在寻找我相信动作名称“索引”。任何人都可以解释原因是什么吗?

1 个答案:

答案 0 :(得分:0)

我不确定这是否是问题的原因但是我看不到你在struts.xml中定义了一个名为“register.jsp”的动作。结果类型“redirectAction”用于定位struts2操作。在输入时,您不指定类型,因此假定默认值为“dispatcher”。

变化:

<result type="redirectAction">register.jsp</result>

<result>register.jsp</result>

假设请求类型为“dispatcher”(jsp),名称为“success”。