我的 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/