我正在研究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 扩展无法调用操作?
答案 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>
否则检查您的包裹名称是否正确。 默认情况下,它的名称默认
试试这个链接。它可能会有所帮助