1.我写了一个Action了
public String execute() throws Exception {
// TODO Auto-generated method stub
if ("zhangsan".equals(userName) && "lisi".equals(userPass)) {
ActionContext.getContext().getSession().put("user", getUserName());
return SUCCESS;
} else{
return INPUT;
}
}
那这个结果会返回了两个值的哦一个是success,一个是input
看配置文件
/login.jsp看到了没有,有两个结果可以返回得到的
/suc.jsp
就是表示转向的哦!
用来处理转向用的啊!
[Action 中是可以表示这个Action返回的结果的重新转向的哦!]
现在来测试一下我修改一下这个result的结果看看如何?
我试过了,里面写的result中的name是我们在Action中的execute中的返回值哦!
它会对应地去寻找到底是走哪条路的哦!
2.用Structs2.0来实现上传文件
Struts2的Action已经与Servlet API彻底分离了,Struts2框架负责解析HttpServletRequest请求中的参数,包括文件域
客户端提交的信息是可以通过Structs2.0来获取到的哦!
现在可以实现上传文件了哈哈,比较简单的哦!
/upload
/suc.jsp
在struct.xml文件中跟登录的差不多就是多了一个参数而已了哦!
来看一下我们的Action吧!
如何在Action类中读取出来我们的配置文件中的参数值呢?
private String getSavePath() throws Exception
{
return ServletActionContext.getRequest().getRealPath(savePath);
}
可以从我们的配置文件中读取出来参数值的哦!
像Servelts中的读参数方法哦哈哈!
配置文件中:/suc.jsp
当Action中返回的是真值 的时候就到这个JSP页面中去了!
[现在感觉Structs2.0确实比较简单的哦!]
上传的内容添加进来过滤器操作!
拦截器实现文件过滤 通过自身的拦截器来实现
配置fileUpload拦截器时,可以为其指定两个参数:
allowedTypes:该参数指定允许上传的文件类型,多个文件类型之间以英文逗号(,)隔开。
maximumSize:该参数指定允许上传的文件大小,单位是字节。
通过配置fileUpload的拦截器,可以更轻易的实现文件过滤,当文件过滤失败后,系统自动转入input逻辑视图,因此必须为该Action配置名为input的逻辑视图。除此之外,还必须显式地为该Action配置defaultStack的拦截器引用。
通过拦截器来实现文件过滤的配置文件如下:
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"">
引用了这个拦截器的哦。配置加入参数
image/bmp,image/png,image/gif,image/jpeg
2000
/upload
/succ.jsp
/upload.jsp
上面的拦截器过滤不仅过滤了文件的类型,也过滤了文件大小。上传文件的类型只能是图片文件,且文件大小不能大于2000字节(当然,我们随时可以更改到更大)。如果我们上传文件的文件太大,系统将转入input的逻辑视图,也就是/upload.jsp页面。
通过配置拦截器可以轻松实现哈哈!
阅读(1644) | 评论(0) | 转发(0) |