【发布时间】:2015-02-17 08:58:32
【问题描述】:
如果 Struts2 Action 类中有任何错误,我想将我的请求重定向到 LogOff 页面。 我正在对 db.jsp 中的 struts 操作进行 ajax 调用,我正在验证会话变量。 我希望用户在 db.jsp 上获得 ajax 响应,如果会话得到验证,则重定向到 logoff.jsp。
我从 db.jsp 调用的 Ajax 是这样的:
$.ajax({
type : "POST",
url: "startapp",
data:{ processDateInput: processDate,secretToken:tokenLocal},
dataType: "json",
async: true,
success: function(result) {
var od = JSON.stringify(result);
var obj = JSON.parse(od);
var i = 0;
console.log(od);
}
});
如果会话被验证,我正在验证,将响应发送回 Ajax,否则重定向到用户从应用程序注销的 LogOffRedirection.jsp 页面:
public class StartAppAction extends ActionSupport {
private static Logger logger = Logger.getLogger(StartAppAction.class
.getName());
private static final long serialVersionUID = -367986889632883043L;
private final static String SUCCESS = "success";
private final static String FAILURE = "failure";
// private ProcessDate pd = new ProcessDate();
private Object od;
private String processDateInput = null;
private String secretToken=null;
public String execute() throws Exception {
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
try{
if(null!=request.getSession().getAttribute("sesStrUID") && null!=secretToken){
if(!secretToken.trim().equals(request.getSession().getAttribute("sesStrUID").toString().trim())){
return FAILURE;
}
}
}
catch (Exception e) {
logger.error("Exception in token verification in Pre con action");
}
return SUCCESS;
}
public String getProcessDateInput() {
return processDateInput;
}
public void setProcessDateInput(String processDateInput) {
this.processDateInput = processDateInput;
}
public Object getOd() {
return od;
}
public void setOd(Object od) {
this.od = od;
}
public String getSecretToken() {
return secretToken;
}
public void setSecretToken(String secretToken) {
this.secretToken = secretToken;
}
我给出的 Struts.xml 为:
<action name="startapp" class="com.ge.wd.action.StartAppAction">
<result name= "success" type="json"></result>
<result name="failure">/jsp/LogOffRedirection.jsp</result>
</action>
它不工作,它应该像这样工作吗? 或者我们还有什么可以在 Struts2 中实现同样的效果。
【问题讨论】:
-
您的 ajax 调用总是希望收到 json 结果,因此如果服务器上出现任何问题,客户端中的 javascript 对此一无所知。因此,请始终从您的操作中发送 json 并在其中添加一些标志,以便您可以在客户端 javascript 中阅读和处理它,作为 @Justin Russo 的代码示例
标签: java jquery ajax jsp struts2