Question

Je suis conscient que cela est un peu un nouveau post, mais je me sens comme Réaffectation ma question va rendre les choses plus claires.

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 je 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 était bien travaillé avant je displaytag, et j'ai un getter et setter dans ma classe d'action (en ce moment, il retourne 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>
Était-ce utile?

La solution

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>

Autres conseils

Je pense que ce qui se passe probablement est que les exigences spécifiques de la ligne pour Struts 2 et l'affichage taglib interagissent mal, à savoir que l'autre taglib fait son propre traitement ligne par ligne, et l'expression OGNL pour « cpc » ne sont pas en cours d'évaluation correctement, parce que la ligne n'est pas correctement poussé sur la pile de valeurs (si vous ne comprenez pas ce que je veux dire, ce n'est pas indispensable).

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top