网站网站设计网站,新闻类软文营销案例,做网站用的字体是什么,竞价sem托管公司本文是Struts2的综合实例#xff0c;主要包含以下功能
添加#xff0c;删除#xff0c;修改#xff0c;查询用户上传#xff0c;下载图片 拦截器实现登陆功能 验证器检查输入
下载图片功能以前没有实现过#xff0c;步骤如下
在类中增加两个属性
//文件下载private…本文是Struts2的综合实例主要包含以下功能
添加删除修改查询用户上传下载图片 拦截器实现登陆功能 验证器检查输入
下载图片功能以前没有实现过步骤如下
在类中增加两个属性
//文件下载private InputStream inputStream;private String imageFileName;
下载方法实现
public String download(){path ServletActionContext.getRequest().getParameter(path);filename ServletActionContext.getRequest().getParameter(filename);String storePath ServletActionContext.getServletContext().getRealPath(/files);try {inputStream new FileInputStream(storePath\\path\\filename);} catch (FileNotFoundException e) {e.printStackTrace();}return SUCCESS;}
配置struts.xml
action namedownload classcn.itcast.domain.User methoddownloadinterceptor-ref namemydefaultstack/interceptor-refresult typestream namesuccessparam namecontentTypeapplication/octet-stream/paramparam nameinputStreaminputStream/param!-- 输入是对应的动作类中的那个字段 --param namecontentDispositionattachment;filename${filename}/param!-- 要下载的文件名 --/resultresult namelogin/login.jsp/result/action
JSP页面实现
c:url value/user/download varurlc:param namepath value${user.path}/c:paramc:param namefilename value${user.filename}/c:param/c:urla href${url}下载/a
登陆验证功能
定义拦截器类
package cn.itcast.interceptor;import javax.servlet.http.HttpSession;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;public class PermissionInterceptor implements Interceptor {public void destroy() {}public void init() {}public String intercept(ActionInvocation invocation) throws Exception {HttpSession session ServletActionContext.getRequest().getSession();Object obj session.getAttribute(user);if(objnull){return login;}else{return invocation.invoke();}}}
struts.xml中的配置
package namemydefault extendsstruts-defaultinterceptorsinterceptor namepermissionInterceptor classcn.itcast.interceptor.PermissionInterceptor/interceptorinterceptor-stack namemydefaultstackinterceptor-ref namedefaultStack/interceptor-refinterceptor-ref namepermissionInterceptor/interceptor-ref/interceptor-stack/interceptors/package
在其他Action中使用拦截
interceptor-ref namemydefaultstack/interceptor-ref
条件查询实现
JSP页面
tds:form actionuser_queryCondition namespace/users:textfield nameusername label用户名/s:textfields:select list#{0:女,1:男} label性别 namesex headerKey headerValue请选择/s:selects:select label学历 nameeducation list#{研究生:研究生,本科:本科,专科:专科,高中:高中} headerKey headerValue请选择/s:selects:submit value查询/s:submit/s:form/td
javabean方法实现
public String queryCondition(){ListUser users s.findUserByCondition(this);ActionContext.getContext().put(users, users);// #usersreturn SUCCESS;}
service层方法实现
public ListUser findUserByCondition(User user) {boolean ok1 true;boolean ok2 true;boolean ok3 true;StringBuffer sb new StringBuffer(where 11 );if(user.getUsername()!null!user.getUsername().equals()){ok1 false;sb.append( and username like %user.getUsername()% );}if(user.getSex()!null!user.getSex().equals()){ok2 false;sb.append( and sexuser.getSex());}if(user.getEducation()!null!user.getEducation().equals()){ok3 false;sb.append( and educationuser.getEducation());}boolean conditionOk ok1ok2ok3;//如果为false说明至少有一个查询条件if(conditionOk){
// System.out.println(没有查询条件);
// return null;return dao.findUsersByCondition(null);}else{
// System.out.println(有查询条件);
// System.out.println(sb.toString());
// return null;return dao.findUsersByCondition(sb.toString());}}
其他增删改查详细实例参见github源码
ssh/Struts2Crud at master · whuhan2013/ssh
效果如下