1

如何在没有“?”的情况下将 URL 字符串视为参数 动作名称后的字符?

假设我们有来自数据库的用户名:jr、jack、j 等......

我想要的是使用 domain.com/user/jr、domain.com/user/jack、domain.com/user/j 等查看他们的个人资料。

这些有办法吗?

在示例中,jr、jack、j 是动态的,并且是用于查看其个人资料的键。

4

2 回答 2

1

使用通配符映射

动作注释(约定插件)的示例:

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)
    }
}

于 2012-05-03T13:15:44.647 回答
0

我认为您正在寻找的是 Struts 2 REST 插件,因为您正在寻找 REST 样式的 URL。

http://struts.apache.org/2.x/docs/rest-plugin.html

我不记得插件是否会替换正常的“动作”类映射,但我认为它可能会。也就是说,我认为在它出现之后,您的所有操作都必须按照我链接的信息中指定的约定进行映射。

祝你好运。

于 2012-05-03T02:34:08.657 回答