0

onchange イベントがトリガーされたときに、select タグの選択された値を ajax を介してアクションに渡そうとしていますが、何らかの理由で、アクションはパラメーターを null として受け取ります。

jsp のコードは次のとおりです。

<%@taglib prefix="s" uri="/struts-tags" %>
<%@taglib prefix="sx" uri="/struts-dojo-tags" %>
<div id="navegacion_proyectos">
    <s:select name="id_proyecto_actual" id="proyecto_actual_select" list="proyectos" listValue="titulo_proyecto" listKey="id_proyecto"/>
    <s:url id="cambiar_proyecto_actual_url" value="/cambiar_proyecto_actual.action" />
    <sx:bind sources="proyecto_actual_select" events="onchange" href="%{cambiar_proyecto_actual_url}" />
</div>

アクションのコードは次のとおりです。

public class BLProyecto extends ActionSupport {

    private String id_proyecto_actual;

    public String cambiarProyectoActual() {

        Map sesion = ActionContext.getContext().getSession();
        sesion.put("proyecto_actual", id_proyecto_actual);

        return SUCCESS;
    }
    public String getId_proyecto_actual() {
        return id_proyecto_actual;
    }

    public void setId_proyecto_actual(String id_proyecto_actual) {
        this.id_proyecto_actual = id_proyecto_actual;
    }

}

コードをデバッグしていますが、id_proyecto_actual パラメーターが null として表示されます。何が問題だと思いますか?

4

1 に答える 1

1

みなさん、ありがとうございました。答えを見つけました。イベントがトリガーされたときにURLをたどる代わりに、フォームを送信するだけです。このような:

<%@taglib prefix="s" uri="/struts-tags" %>
<%@taglib prefix="sx" uri="/struts-dojo-tags" %>
<div id="navegacion_proyectos">
    <s:form id="cambiar_proyecto_actual_form" action="cambiar_proyecto_actual">
        <s:select name="id_proyecto_actual" id="proyecto_actual_select" list="proyectos" listValue="titulo_proyecto" listKey="id_proyecto"/>
    </s:form>
    <sx:bind sources="proyecto_actual_select" formId="cambiar_proyecto_actual_form" targets="pantalla_principal" events="onchange" />
</div>
于 2012-06-07T20:16:11.180 に答える