- 导入Struts的包到MyEclipse的项目下的WebRoot--->WEB-INF--->lib里,其中的包,包括:
commons-fileupload-1.2.1.jar freemarker-2.3.15.jar commons-logging-1.0.4.jar ognl-2.7.3.jar struts2-core-2.1.8.1.jar xwork-core-2.1.6.jar - 在同为WEB-INF下的web.xml里设置过滤器:请将我在行内的注释先删除掉!!
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="2.5" 3 xmlns="http://java.sun.com/xml/ns/javaee" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 6 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 7 <welcome-file-list> 8 <welcome-file>index.jsp</welcome-file> 9 </welcome-file-list> 10 在这里写过滤器 11 <filter>
12 <filter-name>struts2</filter-name>这里是过滤器的名字
13 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 14 </filter>上面那一行是过滤器的所在的包里的路径--->Struts准备并执行过滤 15 16 <filter-mapping>这里是过滤的设置17 <filter-name>struts2</filter-name>这是过滤的名字18 <url-pattern>*.action</url-pattern>当请求是以.action发送的时候执行过滤19 </filter-mapping> 20 </web-app> - 在src文件下创建一个.xml文件并以struts命名
- 找到Refereneced Libraries--->struts2-core-2.1.8.1.jar--->struts-default.xml
- 将struts-default.xml中的一些代码复制;如以下的代码1-7行,并将7行的<strust>标签补齐
- 回到src下的struts.xml中书写
1 <?xml version="1.0" encoding="UTF-8" ?> 2 3 <!DOCTYPE struts PUBLIC 4 "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" 5 "http://struts.apache.org/dtds/struts-2.1.7.dtd"> 6 7 <struts> 8 <constant name="struts.i18n.encoding" value="UTF-8"></constant>这里书写的是struts的编码方式 9 <constant name="struts.devMode" value="true"></constant>这里书写的struts开发模式true开启,产品模式是false 10 <package name="pagekage" extends="struts-default" namespace="/"> 11 上面一行是进行设置package name是package的标识用于区分 extends是继承与struts-default namespace是命名空间 使用的一种代码组织的形式 通过名称空间来分类 12 <action name="login" class="com.action.LoginAction" > 13 在上一行name表示页面里的from或a标签访问的名字 class用于当login被访问时寻找的类 在这里有一个隐藏的属性method,当没有被写出的时候默认执行的方法是execute方法 14 <exception-mapping result="Exe" exception="java.lang.Exception"></exception-mapping> 上一行是一个异常捕获,当action中出现异常时该标签就会异常的字符 result返回Exe exception异常处理机制 15 <result>success.jsp</result> 当result没有 name的属性时,其name默认为success,而后根据写的网页进行跳转 result中间夹着的就是网页 16 <result name="error">error.jsp</result> 17 <result name="Exe">Exe.jsp</result> 18 </action> 19 20 </package> 21 </struts>
- 创建一个(名字+action.java)文件在src中 例如:com.action包下的--->LoginAction.java
- LoginAction.java使其继承与ActionSupport或接口与Action;推荐继承
- 继承ActionSupport:内有封装的方法、常量、等可以运用的东西!!
- 接口Action:必须实现execute方法,自己编写
- 在struts中可以直接的进行对象的赋予,不用自己将网页提供的数据取出并赋予对象!
- 第一种:直接写对象的get与set的方法并私有对象属性,在请求通过时struts自动创建成员并set----前提是在页面内必须要有对象的名字.属性----user.name -如下
-
1 package com.action; 2 3 import com.bean.User; 4 import com.opensymphony.xwork2.Action; 5 6 public class LoginAction implements Action { 7 8 private User user; 9 10 11 12 public User getUser() { 13 return user; 14 } 15 16 public void setUser(User user) { 17 this.user = user; 18 } 19 20 public String execute() throws Exception { 21 // TODO Auto-generated method stub 22 if(user.getName()!=null&user.getName().equals("wang")){ 23 return "yes"; 24 } 25 return "no"; 26 } 27 28 }
- 第二种:与ModelDriven<User>接口实现其方法,并直接将对象创建出来--在这个里就不用象上一个在页面上user.name,可以直接的name--如下
1 package com.action; 2 3 4 import com.bean.User; 5 import com.opensymphony.xwork2.ActionSupport; 6 import com.opensymphony.xwork2.ModelDriven; 7 8 9 10 public class sss extends ActionSupport implements ModelDriven<User>{ 11 12 13 private User user=new User(); 14 15 public String add(){ 16 if(user.getName()!=null&user.getName().equals("wang")){ 17 18 this.addActionMessage("姓名错误!!!请重新输入!"); 19 上一行是继承ActionSupport类里的,可以在页面中直接取出 20 return SUCCESS; 21 } 22 23 return ERROR; 24 } 25 26 public User getModel() { 27 // TODO Auto-generated method stub 28 return user; 29 } 30 31 }
各位纯手打很辛苦的!!!!!!!请让我也上一个首页!!谢谢!
- 第二种:与ModelDriven<User>接口实现其方法,并直接将对象创建出来--在这个里就不用象上一个在页面上user.name,可以直接的name--如下
- LoginAction.java使其继承与ActionSupport或接口与Action;推荐继承