如何在Java中的Struts应用程序中将自定义变量保存到请求中?
我正在使用Struts 1.2和J2EE1.4。我对Struts和Java非常陌生,所以希望有一个简单的解决方案来解决我的问题。我的页面设置如下:如何在Java中的Struts应用程序中将自定义变量保存到请求中?,java,jquery,jsp,struts-1,Java,Jquery,Jsp,Struts 1,我正在使用Struts 1.2和J2EE1.4。我对Struts和Java非常陌生,所以希望有一个简单的解决方案来解决我的问题。我的页面设置如下: $('.success, .error, .success_header, .error_header').hide(); $('form#contactForm').show(); 成功的HTML 我们现在遇到了技术上的困难。请稍后重试您的请求 最初,成功、错误和联系我们div都是隐藏的。我在一个模式对话框中单击时会显示联系人表单,如下所
$('.success, .error, .success_header, .error_header').hide();
$('form#contactForm').show();
成功的HTML
我们现在遇到了技术上的困难。请稍后重试您的请求
最初,成功、错误和联系我们div都是隐藏的。我在一个模式对话框中单击时会显示联系人表单,如下所示:
$('.success, .error, .success_header, .error_header').hide();
$('form#contactForm').show();
因此,在我的操作中,我希望能够将所有内容发送回相同的输入转发
,而不管是否存在验证错误但是我想在jQuery中的jsp页面上进行检查,查看应该显示哪个对话框:
if ("reg".equalsIgnoreCase(contactUsForm.getAction())) {
ActionMessages errors = getErrors(request);
errors = validate(contactUsForm);
if (errors.isEmpty()) {
//Save some variable to the request/response to say that registration was successful
} else {
//save something to say that registration was not successful
saveErrors(request, errors);
}
}
return actionForward;
是否有方法在
操作
中设置一个变量,在调用ActionForward
后,可以在jsp
页面中检索该变量。最好通过jQuery在$(文档)中访问。准备好了吗?
函数?您可以使用普通的Struts和/或servlet规范机制
你可以检查一下是否有错误;它们存储在请求中的“org.apache.struts.action.ERROR”
键下;你不需要添加任何特别的内容,但是如果你真的想添加,你可以
我更喜欢将非表单数据存储为请求属性:
request.setAttribute("haveErrors", true); // Or false, obviously.
然后,您需要从JSP中的请求中获取数据,并将其解释为JavaScript:
$(function() {
// Use normal JSP EL; haveErrors should display as a bare string,
// which is valid JS. Can modify as necessary if need be.
var haveErrors = ${haveErrors};
});
我不确定我是否正确理解了这个问题,但如果您的意思是,是否有一种方法可以将变量从Action类中传递到JSP,那么是的 在return语句之前的Action类中,为请求上下文设置一个变量,如下所示:
request.setAttribute("successfulRegistration", "true");
请始终记住,JSP在服务器端编译,然后在响应到达要呈现的浏览器或javascript处理之前,将任何HTML添加到响应中。所以
以JSP为例:
<script type="text/javascript>
var success = <% (String) request.getAttribute("successfulRegistration"); %>
</script>
类似地,在Action类中,可以设置这些属性-应用程序上下文由ServletContext类访问 谢谢。这应该能奏效。检查
请求
是否有错误可能更有意义,但设置属性
将帮助我保存更多我想获取的内容。@Rondel我还建议对键值使用常量;只是想保持简单。有些人也把一切都用行动的形式表现出来;这是一个偏好的问题。很抱歉,您必须使用如此古老的技术。建议:使用struts2,它与Struts1完全不同,最终您将切换到struts2。Struts2不需要任何以前使用Struts1的经验,因此学习它非常容易。@XCoder我希望我能。不幸的是,我无法决定我可以使用哪些技术来实现这一点。
Request - request.getAttribute(...)
Session - request.getSession().getAttribute(...)
Application - application.getAttribute(...)