ディスプレイタグを使用してJSPページの行から値を取得する
-
28-09-2019 - |
質問
struts2 / jspの質問をたくさんして申し訳ありませんが、で生成されたテーブルがあります タグを表示します:
<display:table name="table" pagesize="10" id="row" requestURI="">
<display:column title="Action">
<s:form theme="simple">
<s:submit action="remove" value="Remove"
onclick="return confirm('Are you sure you want to delete this item?');"/>
<s:submit action="displayEdit" value="Edit"/>
</s:form>
</display:column>
<display:column property="cpc" title="CPC"/>
<display:column property="companyName" title="Company Name"/>
<display:column property="eventType" title="Event Type"/>
<display:column property="industryType" title="Industry Type"/>
<display:column property="previousEvents" />
<display:column property="creditNotifications" />
<display:column property="interimNotifyEnterprise" />
</display:table>
これで、特定の行を削除または編集できるようにしたい(すでにアクションが作成されている)が、各行の特定のデータを取得して、どの行を編集または削除するかを伝えることができるようにするにはどうすればよいですか?
解決
私はこれについて前に言及しました 質問 あなたは先日尋ねました。列に並んで、おそらく隠されたフィールドで、アイテムを一意に識別するために使用できるものが必要です。
Anを使用することをお勧めします <s:hidden key="rowID" />
行で、アクションで提出されます。オブジェクトにそのようなプロパティがあり、削除アクションにその値を受け取るセッターがあり、それを使用して行を一意に識別することができます。
他のヒント
テーブルには、行ごとのクラスオブジェクトに一意の識別子フィールドがないようです。表示しようとしているBean -Classにフィールド-idを追加できます。 (Bean ClassのCompanyID)。テーブル内のすべての行が一意の「会社」オブジェクトを表示し、「CompanyID」フィールドに応じて、「CompanyID」をアクションクラスに渡すことで、選択したオブジェクトを編集/削除することができます。
UIレイアウトにエンドユーザーに「CompanyID」列を表示するのが好きではありません。その場合、パラメーターとして「companyID」を使用して「編集」と「削除」列のハイパーリンクを作成できます。
これについては、displaytagチュートリアルを参照してください サイト 詳細については。
以下を使用して行IDを取得します。たとえば、ラジオボタンを使用しました、
<display:column property="radioButton" title="ID">
<input type="radio" value='<%=data_rowNum.intValue()-1%>' name='rowNr' onClick="fnEnableControls()"/>
</display:column>
これで、rownrの価値を簡単に取得できます req.getParameter
これに基づいて、Uはタグテーブルを表示するために提供したリストからレコードを取得できます。