0

我有一个带有以下几行的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 和 /marketing 操作。因此,如果您在营销页面上,我需要通过如下所示的营销操作:

<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 解决了这个问题。

任何帮助深表感谢!!

谢谢!

4

2 回答 2

0

我相信admin或者marketing是您的操作的名称,它已映射到受尊敬的操作类。如果是这种情况,Struts2 提供了一种使用ActionContext.

您可以在您的操作类/基本操作类中创建一个实用方法,例如

public String getActionName() {
        ActionContext a = ActionContext.getContext();
        Object value = a.getName();
        return value;
}

ActionContext提供对上下文的引用,您将能够在堆栈中获得操作名称以及许多其他有价值的信息。

于 2012-08-14T04:52:18.507 回答
-1

您可以在控制器中获取操作路径并传递给jsp,因此转发到jsp url,如:

your.jsp?action=/admin

jsp中的输出参数。

于 2012-08-14T02:17:49.517 回答