日期:2014-05-18  浏览次数:20640 次

struts2有没有办法在返回一个页面的时候,向这个页面内部输出一段代码?
我一个action基层了ServletResponseAware,然后用以下代码在登录失败的时候向页面输出js弹出窗口代码,

//输出js到页面去
response.setContentType("text/html;charset=UTF-8");
        response.setCharacterEncoding("UTF-8");//防止弹出的信息出现乱码
        PrintWriter out = response.getWriter();
out.print("<script>alert('id或密码错误');</script>");
        
        out.flush();
        out.close();
return "error";


但是我这样做了以后发觉,struts。xml设置的跳转不起效了

<action name="adminLogin" class="AdminAction">
<result name="success" type="redirect">/admin/adminMain.jsp</result>
<result name="error">/adminLogin.jsp</result>
</action>


我本来的想法是,登录失败,跳回到登录页面(或者停在登录界面),并向登录界面输出上述的js代码,该怎么实现呢?

------解决方案--------------------
果断用ajaxz最好
------解决方案--------------------
引用:
Quote: 引用:

out.print("<script>alert('id或密码错误');location.href='';</script>");

return null;

或者,
把<script>alert('id或密码错误');</script>这个放在request作用域中输出。

我知道你这两个方法都可以做到,但是为啥我那种做法跳转失灵了呢


因为out close()啦,你还记不记得jsp的每一行html都是用的out.print();输出的,,你前面都close了,后面怎么关联起来呢??  我猜想的。。
你可以吧out close()去掉试试看。。