struts2的action如何返回一个弹出窗口?
<package name="userlogin" namespace="/" extends="struts-default">
<action name="login" class="com.rain.action.LoginAction"
method="login">
<result name="success">/admin.jsp</result>
<result name="false">/error.jsp</result>
</action>
</package>
上面是我的struts.xml的代码,里面当用户登录出错的时候,我返回的是一个error.jsp页面,如何做就在当前的界面弹出一个窗口,并且点击确定之后仍然停留在登录界面,将用户密码框里面的值清空。
------解决方案--------------------是弹出alter吗?
如果是直接用js,if(message == 'error') alert('登录失败')
------解决方案--------------------ajax 你还没学吧 后面学习了再搞这样的功能。现在是不可能的!
要是学习过ajax 根据返回结果判断是否错误。同时alert 或者弹出div也可以。清空嘛就简单的js清空就行。
------解决方案--------------------可以做到
前端用struts标签
action:
//别忘了setter getter
private String message;
public String login() {
if(1==2){
//登录失败
message = "登录失败";
return error;
}
return success;
}
jsp页面最上面:
<script>
<s:if test="message != null"}">
alert(<s:property value="message " /> )
</s:if>
</script>
.........jsp页面其他元素
------解决方案--------------------
这样可以做到么? jsp页面你如何提交? from表单?还是? 你能让它后台验证了 还不跳转,还留在本页面? 明显lz 说的意思是无刷的 验证,不然何来清空一说,刷新了 控件直接就空了!
------解决方案-------------------- 把<result name="false">/error.jsp</result>去掉。
不管正确还是错误都返回到success.jsp
当发现错误时,加一段消息到
request.setAttribute("message", "登录错误");
然后在success页面。用js判断request里面message对象是否为空,如果不为空,就弹出来
var msg = "${message}";
if(msg != null){
alert(msg);
}
------解决方案--------------------
<package name="userlogin" namespace="/" extends="struts-default">
<action name="login" class="com.rain.action.LoginAction"
method="login">
<result name="success">/admin.jsp</result>
<result name="false">/error.jsp</result>
</action>
</package>
楼主配置的struts2 文件 明显没用到ajax (extends="struts-default") 、resultType