如何通过一个方法的名称在URL
问题描述:
我想知道如何传递方法的名称来执行的行动,这是我在写page.jsp如何通过一个方法的名称在URL
<s:url id="url" action="FormInt!nom_of_method" includeContext="false"/>
<s:a href="%{url}"><s:text name="Accueil.FormInt"/></s:a>
我将代码执行是在动作(FormInt)方法(nom_of_method),但它与下面的链接
http://localhost:7070/example/FormInt!nom_of_method.action
我想有
http://localhost:7070/example/FormInt.action
链接生成的错误3210
P.S:我使用Struts2 谢谢:)
答
你应该分开方法和动作在<s:url/>
。 你可以改用:
<s:url var="url" action="FormInt" method="nom_of_method" includeContext="false"/>
而且因为ID已被弃用,如上使用var
。
答
您可以在同一个包内定义多个操作,其中每个操作可以使用具有不同方法调用的相同类。
<package name="yourPackage" namespace="/myPackage" extends="struts-default">
<action name="m1" class="com.stackoverflow.MyAction" method="methodOne">
<result name="success">pages/action.jsp</result>
</action>
<action name="m2" class="com.stackoverflow.MyAction" method="methodTwo">
<result name="success">pages/anotherPage.jsp</result>
</action>
</package>
现在你可以使用任何方法,在你看来是这样的:
<s:url var="urlMethod1" action="m1" namespace="/myPackage" />
<s:url var="urlMethod2" action="m2" namespace="/myPackage" />
<s:a href="%{urlMethod1}">My url method 1</s:a>
<s:a href="%{urlMethod2}">My url method 2</s:a>
其中M1被映射到mypackage的/ M1根据你这个包的配置,当你执行这个网址,你将调用你的动作类的MyAction.methodOne方法,而m2将是相同的,只能指向MyAction.methodTwo。
Action类的意志是这样的:
package com.stackoverflow;
public class MyAction{
public String methodOne(){
//your code here
return "success";
}
public String methodTwo(){
//your code here
return "success";
}
}
你可以试试这个,我希望它可以帮助你。
它不起作用#Akash Rajbanshi –
使用它后会出现什么错误? –