java - 如何在 Struts 2 中解析请求 URL?

标签 java web-applications struts2

我的 web 应用程序(使用 struts2 创建)中的注册帐户获得一个单独的站点,如 http://localhost/accountname

每个账户都有自己的登录页面。注册后,用户将获得一个单独的站点http://localhost/accountname

我想先扫描请求 URL(在 struts2 中),然后将该请求转发到相应的登录页面。

我该怎么做?请帮忙

最佳答案

您可以通过以下方式在操作方法中获取请求对象:

   HttpServletRequest request = ServletActionContext.getRequest();

然后您可以找到这样的请求 URL:

   String spath = request.getServletPath();

然后你可以解析它并寻找你想要的模式并相应地转发。


更新:

您可以在struts.xml 配置文件中使用一个包。让我们说“userapps”。

     <package name="userapps" extends="default" namespace="/userapps">
           <action name="*" class="path.to.your.ActionClass" method="processUrl">
               <result name="success" type="redirectAction">
                   <param name="actionName">userpage</param>
                   <param name="id">${user.id}</param>
               </result>
           </action>
     </package>

在 ActionClass 的 processURL 方法中,您可以提取您感兴趣的 URL 部分并设置一个属性,比如用户和他的 ID。然后,您从操作中返回成功。

您将有第二个操作称为 userpage say,它将获取用户的 ID 并转发到正确的页面。

现在,任何形式为 localhost/myapp/userapps/anything.action 的 url 都会调用 processURL 方法。

关于java - 如何在 Struts 2 中解析请求 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2392926/

相关文章:

java - 当 x = 负数时如何使用 try catch 抛出异常

java - 每 x 圈更改二维数组的值?

javascript - 在桌面浏览器上使用 Hammer.js 有什么缺点吗?

php - 设计问题: how to show number of users online?

java - 将值传递给自定义标记

java - "Error: This Java instance does not support a 32-bit JVM."[1] "Please install the desired version."

java-如何生成6位随机十六进制值

.net - 判断是在 .NET 中的生产环境还是开发环境中的最佳方法

java - Struts2准备方法

java - struts html字符编码和解码