他の投稿で解決策を探していましたが、他の解決策が見つからず、理解できませんでした。
select値に応じてtdなどを表示したい。この td は、キーを使用してテーブルの各行を動的に作成するループ内にあります。
これが、変更する必要があるコードの一部です。最初の td は、表示するものを選択する select です。最初の選択に応じて、その他の td を表示する必要があります。
<%-- Empresa--%>
    <td>
        <% String onchange = "javascript:buttonUpdateVisibility(" + key + ",this);"; %>
        <select name="<%=contratoTrabajadorTipo%>" onchange="<%=onchange%>">
            <option value="<%=ContratoTrabajador.TIPO_CONTRATO%>"><bean:message key="contrata"/></option>
            <option value="<%=ContratoTrabajador.TIPO_SUBCONTRATA%>"><bean:message key="subcontrata"/></option>
        </select> 
    </td>
    <%-- Subcontrata --%>
    <td>
        <%  
            String keyContrata = key + "_contrata";
            String keySubcontrata = key + "_subcontrata";   
        %>
        <span id="<%=keyContrata%>" style="display: none;"><bean:write name="contratoEntregaForm" property="nombreEmpresa" /></span>
        <html:select styleId="<%=keySubcontrata%>" property="<%=contratoTrabajadorSubcontrata%>" styleClass="campoSelect">
            <html:options collection="<%=WebConstants.LISTA_EMPRESAS_KEY%>" labelProperty="nombreComercial" property="idEmpresa"/>
        </html:select>
    </td>
可視性 buf を更新するための JavaScript 関数を作成しようとしていましたが、その方法がわかりません。
function buttonUpdateVisibility(key,sel){
    if(sel.value == 'C'){
        document.getElementById(key+"_contrata").style.display = "none";
        document.getElementById(key+"_subcontrata").style.display = "block";
    } else if(sel.value == 'S'){
        document.getElementById(key+"_contrata").style.display = "block";
        document.getElementById(key+"_subcontrata").style.display = "none";
    }
}
jqueryで作ることは可能かもしれませんが、言語についてはよくわかりません。ありがとう!