我阅读了有关通配符映射的struts手册,并决定亲自测试一些示例。我有一个动作指向:
<action name="**" method="getPerson" class="PersonActionBean">
<result>/person/view.jsp</result>
</action>
这使我可以走过去的任何地方,/person
并尽view.jsp
我所能查看。因此,我现在想去的是,/person/jack/black
然后我要让类中的getPerson
方法PersonActionBean
获取URL字段jack
,black
并按名称和姓氏在数据库中进行搜索,然后填充将在view.jsp
我关心的不是搜索功能,而是从方法中检索URL中的字段getPerson
。如何从URL中检索jack
和black
在getPerson
方法中使用它?
我正在使用 Struts 2.1.8.1
方法1-使用struts2-convention插件
struts.xml
<constant name="struts.patternMatcher" value="namedVariable"/>
PersonAction.java
import org.apache.struts2.convention.annotation.Namespace;
...
@Namespace{"/persons/{param1}/{param2}");
public class PersonActionBean exends ActionSupport {
private String param1;
private String param2;
// getter and setter
}
如果你打电话persons/jack/black
时,PARAMS应设置为param1 = jack
,param2 = black
方法2-没有struts2-convention插件
PersonAction.java
public class PersonActionBean exends ActionSupport {
private String param1;
private String param2;
// getter and setter
}
person.xml
<package name="person" namespace="/person" extends="website">
<action name="*/*" method="getPerson" class="PersonActionBean">
<param name="param1">{1}</param>
<param name="param2">{2}</param>
<result>/person/view.jsp</result>
</action>
</package>
struts.xml
<package name="website" namespace="/" extends="struts-default, json-default">
...
<constant name="struts.enable.SlashesInActionNames" value="true"/>
<constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/>
...
</package>
参考文献
查看高级通配符
问题内容: 我打算将JSON格式的整个表单数据发布到Struts2 Action。以下是我的代码段。纠正我要去哪里的错误或帮助我,以便我可以正确获取Action文件中的所有值。我在操作文件中的所有SOP显示为 我的表格数据变成了 Struts2操作文件: 现在的输出 问题答案: 由于我使用名称,值,所以必须使用名称来获取它。下面是工作代码
问题内容: 这是我的问题: 当我用JavaScript编写此代码时 // 好: 但是,当我尝试在属性标签中动态设置该值时,没有任何执行。 // 不好: 有人可以帮我吗? 问题答案: Struts标签,例如JSTL,EL等,是在服务器端执行的。执行完所有这些步骤后,仅HTML的最终页面将呈现给客户端。只有这样,JavaScript才能在页面上运行。 您不能混合使用javascript和Struts标
问题内容: 这是我的问题: 当我用JavaScript编写此代码时 // 好: 但是,当我尝试在属性标签中动态设置该值时,没有任何执行。 // 不好: 有人可以帮我吗? 问题答案: Struts标签,例如JSTL,EL等,是在服务器端执行的。执行完所有这些步骤后,仅HTML的最终页面将呈现给客户端。只有这样,JavaScript才能在页面上运行。 您不能混合使用javascript和Struts标
问题内容: 我试图将SharedPreferences首选项作为AsyncTask中doInBackground函数的参数传递。我已经给它传递了一个字符串(URL),所以我也需要将首选项也作为字符串传递。我可以简单地使用prefs.toString()将其转换为字符串吗? 这是我设置偏好的地方: 问题答案: 你不能,你不应该。您可以轻松地读取内部首选项,而无需将任何内容传递给方法,只需使用即可:
问题内容: 我正在寻找一种将变量或字符串或任何东西传递给JButton的匿名actionlistener(或显式actionlistener)的方法。这是我所拥有的: 现在,我只是声明是一个全局变量,但是我讨厌这种工作方式。有更好的选择吗? 问题答案: 创建一个实现该接口的类。 提供具有参数的构造函数。 问题?
问题内容: 我正在使用Go内置的http服务器,并拍拍来响应一些URL: 我需要向该处理函数传递一个额外的参数-一个接口。 如何向处理程序函数发送额外的参数? 问题答案: 通过使用闭包,您应该能够做您想做的事情。 更改为以下内容(未测试): 然后对