struts2基本操作

来源:互联网 发布:windows进程监控脚本 编辑:程序博客网 时间:2024/05/16 05:17

Action类创建

package cn.jzy.action;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import cn.jzy.modle.EnglishName;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.conversion.annotations.Conversion;import com.opensymphony.xwork2.conversion.annotations.TypeConversion;@Conversion(conversions={@TypeConversion(key="englishName",converter="cn.jzy.modle.type.EnglishNameConveter")})//引用自定义类型转化public class LoginAction extends ActionSupport{private static final long serialVersionUID = 1L;private String userName;private String password;private File upload;private String uploadFileName;//注意名称必须以upload开头private String uploadContentType;private String token;private EnglishName englishName;public EnglishName getEnglishName() {return englishName;}public void setEnglishName(EnglishName englishName) {this.englishName = englishName;}public String getToken() {return token;}public void setToken(String token) {this.token = token;}public File getUpload() {return upload;}public void setUpload(File upload) {this.upload = upload;}public String getUploadFileName() {return uploadFileName;}public void setUploadFileName(String uploadFileName) {this.uploadFileName = uploadFileName;}public String getUploadContentType() {return uploadContentType;}public void setUploadContentType(String uploadContentType) {this.uploadContentType = uploadContentType;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}//表单验证 -方法一,不推荐public void validateLogin() {//if(!userName.equals("jzy")){//this.addFieldError("userName", "用户名不正确");//}}//文件上传public String login(){//HttpServletRequest request=ServletActionContext.getRequest();//获取request对象try{System.out.println("firstName:"+englishName.getFirstName()+"     lastName: "+englishName.getLastName());//System.out.println(uploadFileName + "      " + uploadContentType +"  "+upload);FileOutputStream fos = new FileOutputStream("d:/" + uploadFileName);FileInputStream fis = new FileInputStream(upload);byte[] buf = new byte[1024];int c = 0;while ((c=fis.read(buf, 0, buf.length)) != -1) {fos.write(buf, 0, c);}fos.flush();fos.close();fis.close();}catch(Exception e){e.printStackTrace();}return "show";}}

创建配置文件struts.xml

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts><constant name="struts.enable.DynamicMethodInvocation" value="true" /><constant name="struts.devMode" value="true" /><constant name="struts.i18n.encoding" value="utf-8"></constant><constant name="struts.custom.i18n.resources" value="mystruts"></constant><package name="default" namespace="/" extends="struts-default"><interceptors><interceptor name="test" class="cn.jzy.interceptor.MyIntercepteor"><param name="userName">你好</param></interceptor></interceptors><action name="index"><result>/index.jsp</result></action><action name="login_*" class="cn.jzy.action.LoginAction" method="{1}"><result name="show">/show.jsp</result><result name="invalid.token">/show.jsp</result><result name="input">/login.jsp</result> <!-- input为验证跳转 --><interceptor-ref name="tokenSession"></interceptor-ref><interceptor-ref name="test"></interceptor-ref><interceptor-ref name="fileUpload"></interceptor-ref><interceptor-ref name="defaultStack"></interceptor-ref></action><action name="comment_*" class="cn.jzy.action.CommentAction" method="{1}"><result name="insert" type="chain">comment_select</result><result name="select">/comment.jsp</result></action></package></struts>

Jsp登录页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@taglib prefix="s" uri="/struts-tags" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>      <title><s:text name="login"></s:text></title>  </head>    <body>  <s:fielderror></s:fielderror>  <s:form action="login_login.action" enctype="multipart/form-data" method="post" theme="simple">  用户名:<s:textfield name="userName" ></s:textfield><br>  英文名:<s:textfield name="englishName"></s:textfield>(姓、名用“,”隔开)<br>  密码:<s:password name="password"></s:password><br>  <s:file name="upload" key="upload"></s:file>  <s:token name="token"></s:token>  <s:submit value="登录" ></s:submit>    </s:form>    </body></html>

国际化资源文件

name=\u848B\u5FD7\u52C7login=\u767B\u5F55index=\u9996\u9875error.userName=\u7528\u6237\u540D\u9519\u8BEFerror.password=\u5BC6\u7801\u4E0D\u6B63\u786E

自定义类型转换

创建对象

package cn.jzy.modle.type;import java.util.Map;import org.apache.struts2.util.StrutsTypeConverter;import cn.jzy.modle.EnglishName;public class EnglishNameConveter extends StrutsTypeConverter{@Overridepublic Object convertFromString(Map arg0, String[] arg1, Class arg2) {String name=arg1[0];EnglishName en=new EnglishName();String[] names=name.split(",");en.setFirstName(names[0]);en.setLastName(names[1]);return en;}@Overridepublic String convertToString(Map arg0, Object arg1) {EnglishName en=(EnglishName)arg1;return en.getFirstName()+","+en.getLastName();}}

类型转化类

package cn.jzy.modle.type;import java.util.Map;import org.apache.struts2.util.StrutsTypeConverter;import cn.jzy.modle.EnglishName;public class EnglishNameConveter extends StrutsTypeConverter{@Overridepublic Object convertFromString(Map arg0, String[] arg1, Class arg2) {String name=arg1[0];EnglishName en=new EnglishName();String[] names=name.split(",");en.setFirstName(names[0]);en.setLastName(names[1]);return en;}@Overridepublic String convertToString(Map arg0, Object arg1) {EnglishName en=(EnglishName)arg1;return en.getFirstName()+","+en.getLastName();}}






原创粉丝点击