Struts 2动态URL将在搜索中使用

时间:2012-05-03 02:25:25

标签: java-ee struts2

如何将URL字符串视为参数而不使用“?”动作名称后的字符?

比方说我们有来自数据库的用户名:jr,jack,j等......

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

有没有办法解决这些问题?

从示例中,jr,jack,j是动态的,是用于查看其个人资料的关键。

2 个答案:

答案 0 :(得分:1)

使用 Wildcard mappings

操作注释(常规插件)的示例:

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

答案 1 :(得分:0)

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

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

我不记得是否让插件替换了正常的'action'类映射,但我认为它可能。也就是说,我想在它出现之后,你所有的动作都必须按照我链接的信息中指定的惯例进行映射。

祝你好运。