0

当触发 onchange 事件时,我试图通过 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 参数显示为空。你认为是什么问题?

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