TA的每日心情  | 开心 2021-3-12 23:18 | 
|---|
 
  签到天数: 2 天 [LV.1]初来乍到  
 | 
 
| 
 
  
1,添加strust2.x支持: 
MyEclipse 5.5 GA没有集成struts 2的开发,可以使用struts 2的热部署方式注册插件: 
1>添加struts2所依赖的包: 
antlr-2.7.2.jar 
commons-beanutils-1.6.jar 
commons-chain-1.1.jar 
commons-collections-3.1.jar 
commons-digester-1.6.jar 
commons-fileupload-1.1.1.jar 
commons-io-1.1.jar 
commons-logging-1.0.4.jar 
commons-logging-api-1.1.jar 
commons-validator-1.3.0.jar 
freemarker-2.3.8.jar 
jsonplugin-0.25.jar 
ognl-2.6.11.jar 
oro-2.0.8.jar 
struts2-codebehind-plugin-2.0.11.1.jar 
struts2-config-browser-plugin-2.0.11.1.jar 
struts2-jasperreports-plugin-2.0.11.1.jar 
struts2-jfreechart-plugin-2.0.11.1.jar 
struts2-pell-multipart-plugin-2.0.11.1.jar 
struts2-struts1-plugin-2.0.11.1.jar 
struts2-tiles-plugin-2.0.11.1.jar 
tiles-api-2.0.4.jar 
tiles-core-2.0.4.jar 
tiles-jsp-2.0.4.jar 
xwork-2.0.4.jar 
struts-core-1.3.5.jar 
struts2-core-2.0.11.1.jar 
xalan.jar 
2>添加配置文件 
<?xml version="1.0" encoding="GBK"?>    
<!DOCTYPE struts PUBLIC     
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"   
    "struts-2.0.dtd">    
<struts>    
   <package name="main" extends="struts-default"><!-- 定义一个package --> 
   </package> 
</struts>   
2,以实现登录为例来实现struts2 
1>在web.xml中配置,struts2使用Filter作为分发器: 
  <filter> 
     <filter-name>struts</filter-name> 
     <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> 
     <init-param> 
        <param-name>struts.action.extension</param-name> 
        <param-value>action</param-value> 
     </init-param> 
  </filter> 
  <filter-mapping> 
      <filter-name>struts</filter-name> 
      <url-pattern>/*</url-pattern> 
  </filter-mapping> 
 
2>登录功能Action 
public class LoginAction extends ActionSupport { 
 private String account; 
 private  String password; 
  
 public String execute(){ 
  if("zhangjie".equalsIgnoreCase(account) && "zhangjie".equals(password)){ 
   return SUCCESS; //返回登录成功 
  } 
  return LOGIN;  //否则返回登录页面 
 } 
  
 public String getAccount() { 
  return account; 
 } 
 public void setAccount(String account) { 
  this.account = account; 
 } 
 public String getPassword() { 
  return password; 
 } 
 public void setPassword(String password) { 
  this.password = password; 
 } 
} 
3>在struts.xml中配置,配置文件的默认位置为/WEB-INF/classes/struts.xml。可以将struts.xml放到MyEclipse项目的src文件夹下。 
<?xml version="1.0" encoding="GBK"?>    
<!DOCTYPE struts PUBLIC     
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"   
    "struts-2.0.dtd">    
<struts>    
   <package name="main" extends="struts-default"><!-- 定义一个package --> 
       <global-results> 
           <result name="login">/login.jsp</result>  <!-- 所有的全局result --> 
       </global-results> 
       <action name="loginPerson" class="com.zhangjie.struts2.action.LoginAction"> 
          <result name="success">/success.jsp</result> <!-- result --> 
       </action> 
   </package> 
</struts>   
4>JSP登录页面: 
    <struts:form action="/loginPerson.action"> <!-- FORM表单 --> 
        <struts:label value="登录系统"></struts:label> 
        <struts:textfield name="account" label="账号"></struts:textfield> 
        <struts:password name="password" label="密码"></struts:password> 
        <struts:submit value="登录"></struts:submit> <!-- 提交按钮 --> 
    </struts:form> 
5>登录成功的页面,显示页面: 
登录成功,欢迎你,<struts:property value="account"/> 
  
3,struts 2工作流程: 
访问JSP页面 /struts2/login.jsp 
-> 
提交表单后数据提交给 /struts/loginPerson.action 
-> 
struts截获所有请求,包括*.action的请求 
-> 
查找 struts.xml,loginPerson.action对应LoginAction 
-> 
生成一个LoginAction实例,将提交的数据设置到该实例中 
-> 
调用 LoginAction 实例的execute()主方法 
-> 
跳转到 JSP中显示结果,丢掉该LoginAction 实例 
 |   
 
 
 
 |