您的位置:首页 > 编程语言 > Java开发

初学Struts2第一天,学习Struts基础配置,第一次写博文,写的不好勿喷哦

2016-07-25 18:38 435 查看
Struts2的功能:接收参数,封装请求参数,调用业务层处理请求,封装结果数据,返回页面。Struts2的核心思想是过滤和分发。应用来说学习的重点是拦截器的应用和数据校验,类型转换。

首先,Struts2的常用配置有六种,而需要我们配置的只有web.xml和struts.xml。web.xml可自动生成配置如下:

  <filter>

  <filter-name>struts2</filter-name>

  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

  </filter>

  <filter-mapping><filter-name>struts2</filter-name>

 <url-pattern>/*</url-pattern>

  </filter-mapping>    

struts.xml配置如下:

<!-- package中namespace决定action的访问路径,默认为"",即可以访问所有路径下的Action,“/” 表示访问/index.action或/xx/index.jsp -->

<!-- action 的名为Login,就是前台调用的名,class为Action类路径,method为要调用的方法名-->

<!--result 为返回结果要调转的页面。 -->

<package name="default"   namespace="/"  extends="struts-default">
<action name="Login" class="action.RegisterAction" method="Login">

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

Action的写法:

(一).不继承不实现任何接口,利用反射机制。一般开发不会使用。

(二).实现Action接口,优点是其内部定义了一些逻辑常量,SUCCESS,ERROR,NONE,INUT

(三).继承ActionSupport接口,优点:可以进行表单数据的合法性校验,可以进行错误信息的封装,国际化信息的读取。

Action方法的调用:

1)通过method属性,指定调用的Action相应方法处理请求。

2)使用通配符,用*代替一个或多个任意字符。

3)动态方法调用,通过url动态指定调用Action中的方法,无需配置<action>

Action访问ServletApi的方法

1)以解耦的方式访问

//获得参数;

Map<String ,Object> parameterMap = ActionContext.getContext().getParameter();

//获得用户名和密码;

String[]  user = (String[])parameterMap.get("username");

String[]  pwd = (String[])parameterMap.get("pwd");

//向request保存属性;

ActionContext.getContext().put("name","request name");

//向session保存属性

ActionContext.getContext().getSession().put("name","request name");

//向Application保存属性

ActionContext.getContext().getApplication().put("name","request name");

在jsp;

${requestScope.name}...

2)直接访问

private HttpServletResponse response;
private HttpServletRequest request;
private ServletContext context;

public String execute(){

//向request保存数据:
request.setAttribute("name", "request itcast");
//向session保存数据;
request.getSession().setAttribute("", "");
//向servletAtrribute保存数据;
context.setAttribute("name", "");

}

常用的放回结果类型:转发和重定向

默认的跳转方式是转发,原因是值栈的数据在转发时有效。

重定向的应用-登陆后,重定向到主页。

<result type="redirect">

//重定向,自动实现动态方法的调用

<result type="redirectAction">

<param name="actionName">hello</param>

<param name="method">add</param>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: