如何在没有“?”的情况下将 URL 字符串视为参数 动作名称后的字符?
假设我们有来自数据库的用户名:jr、jack、j 等......
我想要的是使用 domain.com/user/jr、domain.com/user/jack、domain.com/user/j 等查看他们的个人资料。
这些有办法吗?
在示例中,jr、jack、j 是动态的,并且是用于查看其个人资料的键。
如何在没有“?”的情况下将 URL 字符串视为参数 动作名称后的字符?
假设我们有来自数据库的用户名:jr、jack、j 等......
我想要的是使用 domain.com/user/jr、domain.com/user/jack、domain.com/user/j 等查看他们的个人资料。
这些有办法吗?
在示例中,jr、jack、j 是动态的,并且是用于查看其个人资料的键。
使用通配符映射。
动作注释(约定插件)的示例:
struts.xml
<constant name="struts.enable.SlashesInActionNames" value="true" />
<constant name="struts.mapper.alwaysSelectFullNamespace" value="false" />
<constant name="struts.patternMatcher" value="regex" />
@Action(value = "user/{userName}", results = {
@Result(location = "user.jsp")
})
public class UserAction extends ActionSupport implements Preparable {
private String userName; // with getter & setter
public void prepare() {
// getUserByUserName(userName)
}
}
我认为您正在寻找的是 Struts 2 REST 插件,因为您正在寻找 REST 样式的 URL。
http://struts.apache.org/2.x/docs/rest-plugin.html
我不记得插件是否会替换正常的“动作”类映射,但我认为它可能会。也就是说,我认为在它出现之后,您的所有操作都必须按照我链接的信息中指定的约定进行映射。
祝你好运。