java - struts2 将 URL 传递给 Action

标签 java struts2

我阅读了wildcard mappings上的struts手册并决定自己测试一些例子。我有一个操作指向:

<action name="**" method="getPerson" class="PersonActionBean">
      <result>/person/view.jsp</result>
</action>

这使我能够转到 /person 之外的任何地方,并尽可能地查看 view.jsp。所以我现在想做的是转到 /person/jack/black 然后我想要 PersonActionBean 类中的 getPerson 方法获取URL 字段 jackblack 并按姓名在我的数据库中进行搜索,然后填充将在 view.jsp 上使用的对象

我关心的不是搜索功能,而是从方法 getPerson 检索 URL 中的字段。如何从 URL 检索 jackblack 并在我的 getPerson 方法中使用它们?

我正在使用 struts 2.1.8.1

最佳答案

方法1 - 使用struts2-convention插件

struts.xml

<constant name="struts.patternMatcher" value="namedVariable"/>

PersonAction.java

    import org.apache.struts2.convention.annotation.Namespace;
    ...
    @Namespace{"/persons/{param1}/{param2}");
    public class PersonActionBean exends ActionSupport {
        private String param1;
        private String param2;
        // getter and setter
    }

如果您调用persons/jack/black,则参数应设置为param1 = jackparam2 = black

方法 2 - 不使用 struts2-convention 插件

PersonAction.java

public class PersonActionBean exends ActionSupport {
    private String param1;
    private String param2;
    // getter and setter
}

person.xml

<package name="person" namespace="/person" extends="website">
    <action name="*/*" method="getPerson" class="PersonActionBean">
            <param name="param1">{1}</param>
            <param name="param2">{2}</param>
            <result>/person/view.jsp</result>
    </action>   
</package>

struts.xml

<package name="website" namespace="/" extends="struts-default, json-default">
     ...
    <constant name="struts.enable.SlashesInActionNames" value="true"/>
    <constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/>
     ...
</package>

引用文献

查看Advanced Wildcard

关于java - struts2 将 URL 传递给 Action,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12245373/

相关文章:

java - 在 Ubuntu java -version 中给出 Error occurred during initialization of VM

java - hibernate.cfg.xml 在项目中的位置?

java - 如何使用 jQuery Ajax 将 javascript 数组发送到 struts 操作

java - 如何在jsp页面上动态显示数据库中的图像

java - Java中null是如何实现的?

java - 前端和后端的电子邮件验证解决方案

java - 如何填充<s :select> with a json response?

Struts2 提交按钮,其 id 在迭代列表中

java - Struts2 + Spring + JPA( hibernate ): action mapping problem

Java11 嵌套类,同时对代码使用 Fluent Design Structure