0

私のjspヘッダーファイルは次のとおりです。

<%@ taglib uri="/struts-tags" prefix="s"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>

に基づいてフォームのアクション URL を作成したいbasePath。別のタグを試しましたが、うまくいきませんでした。<%=basePath%>動作しません。おそらく、struts2 タグが最初にレンダリングされるためです。#, %, {そして、プロパティタグで試行錯誤しても、うまくいきません! たとえば<s:form name="searchItem" action="%{basePath + '/AdvancedSearch.action'}">、失敗した試みの 1 つでした。

汚いハックで動作させることができました:

<s:set var="searchUrl"><%=basePath%>AdvancedSearch.action</s:set>
<form name="searchForm" method="get" class="searchform" action="%{searchUrl}">

<s:set>しかし、タグラインを削除できるようにするためのより良いハックがあることを願っています!

4

1 に答える 1

0

@Quaternionが言ったように:

struts2 は、それに応じて名前空間とアクション属性を設定するだけで、フォームの URL を構築します。一般に URL を作成する必要がある場合は、s:url タグを使用できます。パラメーターを追加するには、s:param タグを使用します。

s:url タグはここで説明されており、オンラインの例がたくさんあります。また、フォームに get メソッドを使用する場合は、s:hidden タグを使用できます。

于 2013-01-14T14:20:15.500 に答える