1. 在form表单的onload属性里的方法无法执行?

若忘记了在<%=request.getSession().getAttribute("userName")%>两边添加单引号,会造成test方法无法执行。

1 <html>
2 <head>
3 </head>
4 <body>
5 <form onload="test('<%=request.getSession().getAttribute("userName")%>')">
6 Welcome
7 </form>
8 </body>
9 </html>

2.使用普通的Ajax与Struts2结合报错:java.lang.NoSuchMethodException: com.opensymphony.xwork2.ActionSupport.xx(),导致这种错误的原因有多种,下面做一个简单的归纳。

(1)最常出现问题的就是struts.xml配置文件了,若忘记在里面配置相关action可能会导致这样的错误;

(2)自定义了namespace,然而在调用action的时候没有加上namespace;

(3)在ajax调用action的时候,可能会出现这样的问题,此时仅需要在url之前加上上下文路径即可,比如:${pageContext.request.contextPath}/

3.在javascript代码中使用request会报错,因此需要尽量避免在javascript代码中直接使用request.getParameter("param").

4.在通过ajax请求action的时候,只有在action里才能才能取到session里面保存的attritutes,在service里面不能正常取到,具体原因还未查明。