gpt4 book ai didi

struts2 - 是否可以在 Struts2 中通过仅使用注释的约定插件使用通配符方法调用?

转载 作者:行者123 更新时间:2023-12-02 04:09:47 24 4
gpt4 key购买 nike

我知道如何在 struts.xml 中使用通配符方法调用,但是可以使用注释来做到这一点吗?如果是这样怎么办?

最佳答案

您现在可能已经解决了这个问题,但对于那些寻找答案的人来说,是的,这是可能的。

通配符映射请引用:http://struts.apache.org/2.3.1.2/docs/wildcard-mappings.html

要从 url 读取参数,请使用以下注释您的方法:

private String id;

@Action(value = "edit/{id}",
results={@Result(name = "success", location = "/WEB-INF/views/devices/edit.ftl")}
)
public String edit() {
// do something
return SUCCESS;
}

public void setId(String id) {
this.id = id;
}

public String getId() {
return id;
}
  • 您将需要 id 参数的 getter/setter。
  • 您需要指定结果,因为 struts2 不知道使用什么来成功获取 URL:...edit/123,因此需要使用 @Result 来指向您的文件。有点违背了约定插件的目的。

如果我想重定向到特定网址,请使用此注释:

@Action(value = "index",
results={@Result(name = "success", location = "/devices/edit/${entityId}", type = "redirect")}
)

您需要一个用于entityId(在我的例子中为字符串)的getter/setter。

您还可以拥有高级通配符映射、命名空间通配符映射...

不要忘记更改 struts.xml 并添加以下常量。

<!-- Used for advanced wilcard mapping -->
<constant name="struts.enable.SlashesInActionNames" value="true"/>
<constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/>
<constant name="struts.patternMatcher" value="regex" />

关于struts2 - 是否可以在 Struts2 中通过仅使用注释的约定插件使用通配符方法调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6037820/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com