在 Struts 2 中使用 UrlRewrite 设置参数变量
我将 Tuckey UrlRewrite 与 Struts2 应用程序结合使用。
我正在尝试将以下 URL:
/promotions/abcdef-987
转换为 /dopromotions/detail
,并将变量 id
传递为 987< /代码>。
我的重写规则如下:
<rule>
<from>^/(promoties|promotions)/([0-9a-zA-Z\-_]+)-([0-9]+)$</from>
<set type="parameter" name="id">$3</set>
<to>/dopromotions/detail</to>
</rule>
我的 Struts2 Action 具有以下 getter 和 setter:
private Integer id;
public void setId(Integer id){
this.id = id;
}
public Integer getId(Integer id){
return id;
}
但是,该变量永远不会被输入。调试时,我在参数或属性范围内的任何位置都找不到 id
。
我尝试删除 type="parameter"
。这会将 id
放入属性范围中,但它不会输入到我的变量 Integer id
中。
I'm using Tuckey UrlRewrite in combination with a Struts2 application.
I'm trying to convert following URL:
/promotions/abcdef-987
to /dopromotions/detail
passing variable id
as 987
.
My rewrite rule is as follows:
<rule>
<from>^/(promoties|promotions)/([0-9a-zA-Z\-_]+)-([0-9]+)lt;/from>
<set type="parameter" name="id">$3</set>
<to>/dopromotions/detail</to>
</rule>
And my Struts2 Action has following getters and setters:
private Integer id;
public void setId(Integer id){
this.id = id;
}
public Integer getId(Integer id){
return id;
}
However, the variable never gets entered. When debugging, I can't find id
anywhere in the parameter or attribute scope.
I've tried removing type="parameter"
. This puts id
in the attribute scope, but it doesn't get entered in my variable Integer id
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不熟悉您正在使用的 URL 重写器,但您可以单独使用 Struts2 来实现这种映射。
请参阅此答案了解
NamedVariablePatternMatcher< /代码>。您需要在 struts.xml 中设置以下常量:
然后,将您的操作映射为:
I'm not familiar with the URL re-writer you are using, but you can achieve this sort of mapping with Struts2 alone.
Please refer to this answer about the
NamedVariablePatternMatcher
. You'll need the following constants set in your struts.xml:Then, map your action as: