我在我的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>
答案 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)
}
});