Struts2:将常量struts.action.extension设置为","不工作

时间:2014-05-19 19:36:05

标签: java jsp struts2

我正在研究struts2-archetype-starter。通过执行:

获得了一个演示struts 2项目
mvn archetype:generate -B -DgroupId=demoStrutsStarter -DartifactId=DemoStrutsStarter -DarchetypeGroupId=org.apache.struts -DarchetypeArtifactId=struts2-archetype-starter

我修改了struts.xml并添加了struts.action.extension常量声明。现在它看起来像这样:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

    <constant name="struts.action.extension" value=","/>
    <constant name="struts.enable.DynamicMethodInvocation" value="false"/>

    <package name="myPackage" extends="struts-default">

        <default-action-ref name="index" />

        <action name="index" class="demoStrutsStarter.IndexAction">
            <result>/jsp/index.jsp</result>
        </action>

        <action name="helloWorld" class="demoStrutsStarter.HelloWorldAction">
            <result name="input">/jsp/index.jsp</result>
            <result>/jsp/helloWorld.jsp</result>
        </action>

    </package>

</struts>

但是,当我输入时,我收到404错误:

http://localhost:8080/DemoStrutsStarter/index

我不确定我错在哪里。任何人都可以帮我找出为什么我没有 .action 扩展无法调用操作?

2 个答案:

答案 0 :(得分:0)

尝试在包中添加命名空间:

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

答案 1 :(得分:0)

在两个结果中尝试这一点

结果1

<result>/WEB-INF/jsp/index.jsp</result>

结果2

<result>/WEB-INF/jsp/helloWorld.jsp</result>

否则检查您的包裹名称是否正确。 默认情况下,它的名称默认

试试这个链接。它可能会有所帮助

1。stack overflow link 1

2。link 2 mkyong

3。stack overflow link 3