私は表示タグを使ってJSP上のテーブルにデータを表示しています(struts 2を使用)。ここでは、各行に2つのリンクを付けたいと思います.1つは行を削除するための編集用の&です。表示タグを使用してテーブルの各行に編集と削除ボタンを提供
私のJSPの構造と私は現在しようとしていますされています。私はここに直面しています問題は、表示タグのすべての行に関連付けられたフォームのname
が同じである、ということである
<s:url id="editReport" action="editReport" />
<sd:div href="%{editReport}" listenTopics="editReport" formId="actionForm" showLoadingText="false" preload="false">
<s:url id="updLists" action="updLists" />
<sd:div href="%{updLists}" listenTopics="updLists" formId="enterDayReport" showLoadingText="false" preload="false">
<s:form id="enterDayReport" action="enterDayReport">
<sd:autocompleter label="Customer " name="customer" list="customerList" valueNotifyTopics="updLists" autoComplete="false" searchType="substring"/>
<sd:autocompleter label="Contact " name="contact" list="contactList" valueNotifyTopics="updLists" autoComplete="false" searchType="substring"/>
<s:select label="Stage " name="stage" list="stageList" headerKey="0" headerValue="Select" />
<s:select label="Type " name="type" list="typeList" headerKey="0" headerValue="Select" />
<sd:datetimepicker label="Date" name="date" formatLength="small" displayFormat="dd - MMM - yyyy"/>
<s:textarea label="Summary" name="summary" cols="40" rows="10"/>
<s:submit value="Save Report"/>
</s:form>
</sd:div>
</sd:div>
<s:url id="deleteReport" action="deleteReport" />
<sd:div href="%{deleteReport}" listenTopics="deleteReport" formId="actionForm" showLoadingText="false" preload="false">
<disp:table name="dayReportsList" export="true" class="dataTable">
<disp:column property="contactCode" title="Contact"/>
<disp:column property="customerCode" title="Customer"/>
<disp:column property="stage" title="Stage"/>
<disp:column property="type" title="Type"/>
<disp:column property="summary" title="Summary"/>
<disp:column property="reportDate" title="Date" format="{0,date,dd-MMM-yyyy}" />
<disp:column property="rowId" href="%{editReport}" paramId="rowID" paramProperty="rowId" title="Action">
<s:form id="actionForm" name="actionForm">
<s:hidden id="rowId" name="rowId" value="%{rowId}"/> // This is not getting populated.
<s:a onclick="dojo.event.topic.publish('editReport')">Edit<s:property value="rowId"/></s:a><br>
<s:a onclick="dojo.event.topic.publish('deleteReport')">Delete</s:a>
</s:form>
</disp:column>
</disp:table>
</sd:div>
。したがって、アクションクラスの変数rowId
にアクセスしようとすると、どの行がクリックされても、最初の行のrowIdの値だけが取得されます。
私は、URLの書き換えを使用するスタックオーバーフローとgoogleのいくつかの例を見ましたが、私はそれを使いたくありません。
お知らせください。
ありがとうございます!
私は期待していた@Munterこの問題ではJavaScript – Munter
としてタグ付けされるべきではないと私はJavaScriptでそのようなリクエストパラメータか何かを設定し、同じにアクセスすることができればアクションクラスでは、それはトリックを行う必要があります。次に、パラメータ値を 'rowId'に設定し、アクションクラスでその値にアクセスして、クリックされた行を知ることができます。これを行う方法はありますか? – kanishk