老师在Action的代码中定义一个request引用,并设置了path属性为"update"。你可以回去找一找
在struts.xml中<package></package>内配置以下代码:
<global-results>
<result name="ERROR404">/404.jsp</result>
</global-results>
1.ActionContext ActionContext context=ActionContext.getContext();
2.实现Servlet***Aware接口
ServletRequestAware : 提供HttpServletRequest;
ServletResponseAware : 提供HttpServletResponse;
ServletContext:提供ServletContext;
3.ServletActionContext
提供了一些静态方法来获取想要的API,其中:
pageContext:getPageContext();
request:getRequest();
response:getResponse();
servletContext:getServletContext()
404是没有这个页面或者文件的意思,您看看是不是所有的页面,每个jsp全都改成utf-8了,是不是文件多了有漏掉的呢
OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言,简称EL。struts2默认的标签语言就是OGNL。
它有一下几大优势:
1、支持对象方法调用,形式如:objName.methodName();
2、支持类静态的方法调用和值访问,表达式的格式为@[类全名(包括包路)]@[方法名 | 值名],例如:
@java.lang.String@format('foo%s','bar')或@tutorial.MyConstant@APP_NAME;
3、支持赋值操作和表达式串联,例如: price=100,discount=0.8, calculatePrice(),这个表达式会返回80;
4、访问OGNL上下文(OGNL context)和ActionContext(都指的是action上下文); #xxxx,#xxxx. xxxx,#xxxx.xxxxx. xxxx. xxxx. xxxx
5、操作集合对象。
6、OGNL表达式中能使用的操作符基本跟Java里的操作符一样,除了能使用 +, -, *, /, ++, --, ==, !=, = 等操作符之外,还能使用 mod, in, not in等。(引号内)
package com.zsq.action; import javax.servlet.http.HttpServletRequest; import com.opensymphony.xwork2.ActionSupport; public class HelloWorldAction extends ActionSupport { private HttpServletRequest request; public String add() { request.setAttribute("path", "update"); return "add"; } public String update() { return "update"; } @Override public String execute() throws Exception { // TODO Auto-generated method stub System.out.println("执行action"); return SUCCESS; } }
你这里的request要初始化,你试试,我估计你是报了空指针异常的。
private HttpServletRequest request=ServletActionContext.getRequest();
import javax.servlet.http.HttpServletRequest; 引入这个包了吗
private HttpServletRequest request=ServletActionContext.getRequest();//初始化下request即可
1、先确定一下dtd文件有没有弄错
2、global-results中最少要有一个result,在写上result之前都是会报错的
老师的代码实现了servlet api的嘛, 你少一步,肯定错啊
private HttpServletRequest request=ServletActionContext.getRequest();把request定义成这样就好了
source为null。取值之前没有判断。