2010-08-18 17 views
0

Je suis conscient qu'il s'agit en quelque sorte d'un re-post, mais je pense que re-poster ma question rendra les choses plus claires.Récupération de valeur à partir de Row dans Struts2 Table lors de l'utilisation de Displaytag

Voici le code de ma table dans ma page JSP:

<display:table name="table" pagesize="25" requestURI=""> 
<display:column title="Action" > 
    <s:form theme="simple"> 
     <s:hidden key="cpc" /> 
     <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" sortable="true" headerClass="sortable"/> 
<display:column property="companyName" title="Company Name" sortable="true" headerClass="sortable"/> 
<display:column property="eventType" title="Event Type" sortable="true" headerClass="sortable"/> 
<display:column property="industryType" title="Industry Type" sortable="true" headerClass="sortable"/> 
<display:column property="previousEvents" sortable="true" headerClass="sortable"/> 
<display:column property="creditNotifications" sortable="true" headerClass="sortable"/> 
<display:column property="interimNotifyEnterprise" sortable="true" headerClass="sortable"/> 
</display:table> 

La source de la table est un ArrayList, où TableRow est une classe wrapper de tous les différents domaines (et j'ai accesseurs pour tous les champs). Maintenant, quand je vérifie mon code source HTML, je vois cela pour le champ caché:

<input type="hidden" name="cpc" value="" id="displayResults_cpc"/> 

Pour une raison quelconque, il n'y a pas de valeur à trouver ... Il fonctionnait très bien avant je displaytag, et je fais avoir un getter et un setter dans ma classe Action (maintenant il renvoie une chaîne vide).

Edit: Voici le code HTML pour les deux premières lignes:

<tr class="odd"> 
<td> 

<form id="displayResults" name="displayResults" onsubmit="return true;" action="/CompanyNameTableManager/displayResults.action;jsessionid=566617D98154AB762002B06D9D1087CD" method="post"> 
     <input type="hidden" name="cpc" value="" id="displayResults_cpc"/> 
     <input type="submit" id="displayResults_remove" name="action:remove" value="Remove" onclick="return confirm('Are you sure you want to delete this item?');"/> 

     <input type="submit" id="displayResults_displayEdit" name="action:displayEdit" value="Edit"/> 

    </form> 
</td> 
<td>10.1.1</td> 
<td>Comapny A</td> 
<td>abc</td> 
<td>123</td> 
<td>true</td> 
<td>true</td> 

<td>true</td></tr> 
<tr class="even"> 
<td> 

<form id="displayResults" name="displayResults" onsubmit="return true;" action="/CompanyNameTableManager/displayResults.action;jsessionid=566617D98154AB762002B06D9D1087CD" method="post"> 
     <input type="hidden" name="cpc" value="" id="displayResults_cpc"/> 
     <input type="submit" id="displayResults_remove" name="action:remove" value="Remove" onclick="return confirm('Are you sure you want to delete this item?');"/> 

     <input type="submit" id="displayResults_displayEdit" name="action:displayEdit" value="Edit"/> 

    </form> 
</td> 
<td>10.1.2</td> 
<td>Comapny B</td> 
<td>abc</td> 
<td>123</td> 
<td>true</td> 
<td>false</td> 
<td>false</td></tr> 

Répondre

2

Je suppose que j'écopé hors de l'aide des boutons, mais si quelqu'un est curieux, voici ce que je fini par utiliser à la place:

<s:form theme="simple" method="post"> 
<display:table name="table" pagesize="25" requestURI="" uid="row"> 
<display:column title="Select"> 
    <s:checkbox name="checked[%{#attr.row_rowNum - 1}]" fieldValue="%{#attr.row.cpc}" theme="simple"/> 
</display:column> 
<display:column property="cpc" title="CPC" sortable="true" headerClass="sortable"/> 
<display:column property="companyName" title="Company Name" sortable="true" headerClass="sortable"/> 
<display:column property="eventType" title="Event Type" sortable="true" headerClass="sortable"/> 
<display:column property="industryType" title="Industry Type" sortable="true" headerClass="sortable"/> 
<display:column property="previousEvents" sortable="true" headerClass="sortable"/> 
<display:column property="creditNotifications" sortable="true" headerClass="sortable"/> 
<display:column property="interimNotifyEnterprise" sortable="true" headerClass="sortable"/> 
</display:table> 
    <s:submit action="remove" value="Remove" 
    onclick="return confirm('Are you sure you want to delete this item/these items?');"/> 
    <s:submit action="displayEdit" value="Edit"/> 
    <s:submit value="Add New Row" action="displayAdd"/> 
</s:form> 
+0

Bonjour Merci fieldValue = "% {# attr.row.cpc}" Cela a résolu mon problème. Bien que mon problème était différent par résolu. Merci encore..!! –

0

Je pense que ce qui se passe sans doute est que les exigences spécifiques ligne pour Struts 2 et le taglib d'affichage interagissent mal, à savoir que les other taglib effectue son propre traitement ligne par ligne, et l'expression OGNL pour 'cpc' n'est pas évaluée correctement, car la ligne n'est pas proprement poussée dans la pile de valeurs (si vous ne comprenez pas ce que je signifie, ce n'est pas crucial).

Puisque vous avez la valeur CPC dans une autre colonne, est-il possible d'utiliser Javascript dans un onClick (ou onLoad) des boutons pour récupérer la valeur du champ adjacent?

+0

Salut Shawn, pourriez-vous donner un exemple simple sur la façon dont je ferais quelque chose le long ces lignes? Je n'ai jamais vraiment traité avec Javascript avant ... – Raymond

+0

Vous êtes sûrs d'avoir la chance d'apprendre toutes ces choses à la fois. :-) Oui, je verrai ce que je peux trouver dans quelques minutes. –

+0

Pouvez-vous coller un peu du HTML généré par la ligne pour que je puisse vous donner du Javascript? Je ne suis pas sûr de ce que seront les «vrais» identifiants dans votre exemple. Merci. –