Pregunta

Soy consciente de que esto es algo un re-post, pero siento que volver a publicar mi pregunta dejará las cosas más claras.

Aquí está el código para mi tabla en mi página 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 fuente de la tabla es una lista de matrices, donde Tablerow es una clase de envoltorio de todos los diversos campos (y tengo Getters and Setters para todos los campos). Ahora, cuando reviso mi código fuente HTML, veo esto para el campo oculto:

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

Por alguna razón, no hay valor para encontrar ... estaba funcionando bien antes de usar DisplayTag, y tengo un Getter y Setter en mi clase de acción (en este momento devuelve una cadena vacía).

Editar: este es el código HTML para las dos primeras filas:

<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>
¿Fue útil?

Solución

Supongo que me atacé al usar botones, pero si alguien tiene curiosidad, esto es lo que terminé usando en su lugar:

<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>

Otros consejos

Creo que lo que probablemente está sucediendo es que los requisitos específicos de la fila para Struts 2 y la pantalla Taglib están interactuando mal, es decir, que el otro taglib está haciendo su propio procesamiento de fila por fila, y la expresión de OGNL para 'CPC' no lo es Ser evaluado correctamente, porque la fila no se está empujando correctamente a la pila de valor (si no entiende lo que quiero decir, no es crucial).

Dado que tiene el valor de CPC en otra columna, ¿es posible que use JavaScript en un OnClick (o Onload) de los botones para recuperar el valor del campo adyacente?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top