我有一个以下行的jsp:
<ul>
<li><a id="iso3_dan" href="/?lang=iso3:dan&locale=iso3:dan">Dansk</a></li>
<li><a id="iso3_deu" href="/?lang=iso3:deu&locale=iso3:DEU">Deutsch</a></li>
</ul>
它主要用于显示语言下拉菜单。现在,我需要以这样的方式创建URL,它也会附加当前页面操作。
我正在使用Struts 2
在浏览器中,如果我点击管理员菜单,则网址会更改为
http://<portalIp>/admin
如果我点击营销菜单,则会更改为
http://<portalIp>/marketing
现在,我需要做的是我需要追加这个/ admin&amp; /语言中的营销行为。因此,如果您在营销页面上,我需要传递营销活动,如下所示:
<a id="iso3_dan" href="/marketing?lang=iso3:dan&locale=iso3:dan">Dansk</a>
<a id="iso3_deu" href="/marketing?lang=iso3:deu&locale=iso3:DEU">Deutsch</a>
如果您在管理页面上,我需要传递当前操作,如下所示:
<a id="iso3_dan" href="/admin?lang=iso3:dan&locale=iso3:dan">Dansk</a>
<a id="iso3_deu" href="/admin?lang=iso3:deu&locale=iso3:DEU">Deutsch</a>
如何在JSP中传递当前操作?我在下面尝试过:
<a id="iso3_deu" href="<%= request.getRequestURL() %>/?lang=iso3:deu&locale=iso3:DEU">Deutsch</a>
但是这没用。如何在不添加任何Javascript代码的情况下获取操作的路径?
注意:由于搜索引擎优化,我无法使用Javascript。否则,javscript函数document.location.pathname解决了这个问题。
非常感谢任何帮助!!
谢谢!
答案 0 :(得分:0)
我相信admin
或marketing
是您的操作的名称,已映射到受尊重的操作类。
如果是这种情况,Struts2提供了一种使用ActionContext
访问操作名称的方法。
您可以在动作类/基础动作类中创建一个类似
的实用程序方法public String getActionName() {
ActionContext a = ActionContext.getContext();
Object value = a.getName();
return value;
}
ActionContext
提供对上下文的引用,您将能够在堆栈中获取操作名称以及许多其他有价值的信息。
答案 1 :(得分:-1)
您可以在控制器中获取操作路径并传递给jsp,所以转发到jsp url,如:
your.jsp?action=/admin
和jsp中的输出参数。