を使用したプロジェクトがありstruts 2.1.8
ます。プロジェクトは、 を使用したアノテーションによって構成されますstruts2-convention-plugin
。web.xml の私の struts 設定は次のとおりです。
<filter>
<filter-name>struts2Filter</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2Filter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2Filter</filter-name>
<url-pattern>/struts/*</url-pattern>
</filter-mapping>
struts.xml:
<constant name="struts.convention.default.parent.package" value="borrow-default" />
<constant name="struts.convention.package.locators" value="action" />
<constant name="struts.convention.package.locators.basePackage" value="com.abc.action" />
<constant name="struts.convention.result.path" value="/" />
A.java:
@Namespace("/regist")
public class A extends ActionSupport{
@Action(value="/a", results = {@Result(location = "/a/test.jsp")})
public String execute(){
return SUCCESS;
}
}
これが問題です。url と で test.jsp にアクセスできますが、それでも urlhttp://localhost:8080/a/test.jsp
でhttp://localhost:8080/regist/a.action
同じページにアクセスできますhttp://localhost:8080/a/test.action
。なぜこれが起こるのかわかりません。設定またはコードの何が問題なのですか?
他の URL も試してみましたが、名前空間が有効になっていないようです。