`
serenity
  • 浏览: 61245 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

转: Struts 2 框架和配置(3)下

阅读更多

2Action名字是“login”,对应的Class就是“pla.LoginAction”,当用户在浏览器输入http://127.0.0.1/8080/...login.action请求时,Struts 2将调用pla.LoginAction进行业务处理。处理后,返回result值。LoginAction内容如代码1.6所示。

代码1.6  业务控制器LoginAction

 

package pla;

public class LoginAction {

//设置属性

    
private String username,password;

    
//定义属性的getter和setter方法

    
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;

    }


//Action默认执行方法

    
public  String execute()throws Exception{

        
if (getUsername().equals("test")){

          
//返回success字符串

            
return "success";

        }
else{

          
//返回input字符串

            
return "input";

        }


     }


}


 

 

3)在Action中,判断getUsername()是否为“test”,如果是,则返回字符串"success",而struts.xml配置文件中定义了对应的视图资源:

<!—配置Action的返回值success视图-->

      <result name="success">/welcome.jsp</result>

可以看到,配置文件定义了resultname元素为success,对应视图资源为/welcome.jsp,那么当用户请求参数Username为“test”时,Struts 2会将/welcome.jsp页面展示给用户。

4)如果系统中还有一个处理Login业务的Action,内容如代码1.7所示。

代码1.7  业务控制器LoginAction01

 

package pla;

 

import com.opensymphony.xwork2.Action;

import com.opensymphony.xwork2.ActionContext;

public class LoginAction01 implements Action {

    
//设置属性

    
private String username,password;

    
//定义属性的getter和setter方法

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;

    }


    
//Action默认执行方法

public String execute() throws Exception {

        
if (getUsername().equals("test")){

            
//不同于LoginAction的业务实现逻辑

          Dosomething();

            
return "success";

        }
else{

            
return "input";

        }


    }


}


 

 

5)当用户业务逻辑发生变化时,需要调用LoginAction01来实现,那么通过修改配置文件,可以非常方便、快捷地进行调整,只需要修改Action中的class属性即可:

<action name="login" class="pla.LoginAction01"> 

 提示 

通过配置文件来调换Action等模块,类似于灵活的“热插拔”技术。

 

2.属性资源文件

另一类配置文件是属性资源文件,例如struts.properties文件。资源文件中一般采用固定的Key-Value格式,用于定义Struts 2全局或者局部的资源数据,例如国际化、Struts 2开发模式等信息。Struts.properties文件示例见代码1.8

代码1.8  struts.properties文件示例

#设置字符集

struts.i18n.encoding=UTF-8

#该属性指定Http的请求后缀

struts.action.extension=do,action 

#该属性设置当struts.xml文件改变后,系统是否自动重新加载该文件

struts.configuration.xml.reload=false

#指定当前应用默认的国际化地区信息

struts.locale=en_us

 注意 

有过Struts 1.X开发经验的读者会发现,Struts 2框架的Action只是一个普通的Java类(POJO),这是同Struts 1.X的重要区别之一。

 

文章地址: http://blog.csdn.net/ivorytower/archive/2008/04/23/2318898.aspx

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics