【发布时间】:2015-12-26 15:20:52
【问题描述】:
我在我的操作方法中使用了结果类型流,它依赖于 ajax 调用。这个 ajax 调用是在我的 JSP 上的文本字段之外的焦点上激活的。此 AJAX 调用的功能是在用户输入的数据已存在于后端服务器中时显示错误。基本上,服务器返回一个指定业务逻辑结果的状态代码,即在我的情况下,如果我的服务器返回 1016,则数据已经存在于服务器中,因此我会显示错误。
但是,我还必须在我的操作类方法中为代码实现异常处理。在这种情况下,实际发生的情况是,我想要转发到的页面与我的错误应该显示在同一个地方混乱,并且我的网页上的输出非常难看。
我尽我所能重定向到另一个页面,但似乎没有任何效果,我得到的只是 2 个页面乱成一页。
这是我用于特定方法的 struts.xml 代码(就像之前一样):
<action name="useridCheck"
class="com.action.registration.RegistrationAction"
method="isUserIdAvailable">
<result type="stream">
<param name="contentType">text/html</param>
<param name="inputName">inputStream</param>
</result>
</action>
这是 AJAX 方法:
request = $.ajax({
url: "ao/useridCheck.action",
method: "POST",
data: { customerLoginId : userid },
dataType: "text"
});
request.done(function( response ) {
if(response!="") {
$('.error-customerId').html('<span class="clearfix"><img src="../images/ao/ico_error_small.png" alt="error message" class="pull-left error-message" /><span class="error-rgt">'+response+'</span></span>');
$('.error-customerId').prev().addClass('error-field');
v = 1;
}
else
{
$('.error-customerId').text('');
$('.error-customerId').prev().removeClass('error-field');
}
//$('#customerLoginId').addClass('error-field');
// $('.error-amount').prev().addClass('error-field');
});
request.fail(function( jqXHR, textStatus ) {
alert( "Request failed: " + textStatus );
});
我必须在 struts.xml 或 AJAX 或我的操作方法中做什么才能使页面重定向到焦点之外?
【问题讨论】:
标签: java ajax jsp struts2 actionresult