• steps1>Struct2控制器组件


       所有MVC框架都是以控制器组件为核心的,struts2也是如此。

       Struts 2的控制器由两个部分组成:FilterDispatcher和业务控制器Action。

     值得注意的是:实际上,Struts 2应用中起作用的业务控制器不是用户定义的Action,而是系统生成的Action代理,但该Action代理以用户定义的Action为目标。

    public class LoginAction
    {
    	//封装用户请求参数的username属性
    	private String username;
    	//封装用户请求参数的password属性
    	private String password;
    	//username属性的getter方法
    	public String getUsername()
    	{
    		return username;
    	}
    	//username属性的setter方法
    	public void setUsername(String username)
    	{
    		this.username = username;
    	}
    	//password属性的getter方法
    	public String getPassword()
    	{
    		return password;
    	}
    	//password属性的setter方法
    	public void setPassword(String password)
    	{
    		this.password = password;
    	}
    	//处理用户请求的execute方法
    	public String execute() throws Exception
    	{
    		//如果用户名为scott,密码为tiger,则登录成功
    		if (getUsername().equals("scott")
    		&& getPassword().equals("tiger"))
    		{
    			return "success";
    		}
    		else
    		{
    			return "error";
    		}
    	}
    }
    

    通过查看上面的Action代码,发现该Action比WebWork中的Action更彻底,该Action无需实现任何父接口,无需继承任何Struts 2基类,该Action类完全是一个POJO(普通、传统的Java对象),因此具有很好的复用性。

    归纳起来,该Action类有如下优势:

    — Action类完全是一个POJO,因此具有很好的代码复用性。

    — Action类无需与Servlet API耦合,因此进行单元测试非常简单。

    — Action类的execute方法仅返回一个字符串作为处理结果,该处理结果可映射到任何的视图,甚至是另一个Action。




  • 相关阅读:
    JS小白进阶之路(2)
    JS小白进阶之路(1)
    ajax.readyState与ajax.status一览
    Photoshop投影和CSS box-shadow转换
    layer弹层插件
    [Intervention] Ignored attempt to cancel a touchmove event with cancelable=false, for example because scrolling is in progress and cannot be interrupted
    css清除浮动影响
    css网页重置样式表(多版本)
    XSS攻击和CSRF攻击的定义及区别
    git的cd命令
  • 原文地址:https://www.cnblogs.com/GenghisKhan/p/2313926.html
Copyright © 2020-2023  润新知