Struts 2 - 如何使用AJAX更新动作类返回的数据的HTML页面

时间:2017-07-31 14:27:37

标签: ajax struts2

我在我的java项目中使用Struts 2。我刚学会了如何通过AJAX发送参数,现在需要使用Action Java类返回的数据更新html。

我可以使用没有AJAX的Action Java类返回的数据更新html。

示例:

<s:url action="painel.visualizarErro.action" namespace="/errosView.jsp" var="id" /> window.location = '<s:property value="id" />?jobId=' + jobId;

但是我需要通过AJAX来做,我不会使用JSON。

以下是我在struts.xml中的操作:

<action name="painel.visualizarErro" class="com.fiveware.agendador.web.action.PainelAction"
    method="visualizarErroProcessamento">
    <result name="success">/errosView.jsp</result>
</action>

这是我的AJAX:

$.ajax({

    type : "GET",

    url  : "<s:url action='painel.visualizarErro'/>",

    beforeSend: function (xhr) {
        xhr.setRequestHeader('ajax', 'true');
    },

    dataType : 'text/javascript',

    data:{ 'actionToPerform': 'visualizarErroProcessamento',
        'jobId': jobId,
    },

    processData: jobId,

    success : exibirMensagemErro(),

});

这是我的Java类(jus the metthod):

public String visualizarErroProcessamento() {
    System.out.println("ID do JOB " + getJobId());
    String erroProcessamento = new ItemJobBO(null).obtemErroProcessamento(String.valueOf(getJobId()));
    setErroProcessamento(erroProcessamento);
    Map<String, Object> sessionMap = ActionContext.getContext().getSession();
    setCliente((ClienteVO) sessionMap.get(SessaoInterceptor.SESSAO_ID));

    sessionMap.put("erros", erroProcessamento);

    return SUCCESS;
}

这是HTML页面,我想更新:

<%@ taglib prefix="s" uri="/struts-tags"%>

<div>ERRO NO PROCESSAMENTO</div>



<s:iterator value="#session.erros">
    <label><s:property value="erroProcessamento" /></label>
    <label><s:property value="jobId" /></label>
</s:iterator>

<script>



</script>

1 个答案:

答案 0 :(得分:1)

我的问题就这样解决了

 $.get("<s:url action='painel.visualizarErro'/>?jobId=" + jobId, function(data, status){
    if ( status = 'success') {
        exibirMensagemErro(data);
    }
    else {
        alert ( "ERRO ao consultar o motivo: " + status)
    }
});