struts总结

系统 1575 0

Struts 学习总结

一、  struts2 简介

struts2 官网地址: http://struts.apache.org/

struts2 官方开发介绍 http://struts.apache.org/2.0.14/docs/core-developers-guide.html

struts 官方开发介绍本地地址

F:\ 编程资料 \ struts\struts-2.1.6-all\struts-2.1.6\docs\docs\guides.html (包括了所有使用的信息 , 相当重要)

F:\ 编程资料 \ struts\struts-2.1.6-all\struts-2.1.6\docs\docs\home.html

学习计划 : 首先将电子书看了再看文档。

Struts2 中,模型 - 视图 - 控制器模式通过五个核心组件来实现 —— Action 、拦截器?值栈 /OGNL ?结果类型和结果 / 视图技术。

struts.properties 文件中定义的属性都可以在 web.xml 文件的 init-param 标签中进行配置,或者通过 struts.xml 文件中的 constant   标签来修改(我们在下一章中会继续讨论这个标签)。

   struts.properties 文件通常放在 Web 应用的 WEB-INF/classes 路径下。实际上,只要将该文件放在 Web 应用的 CLASSPATH 路径下, Struts 2 框架就可以加载该文件。

Struts2 使用了名为依赖注入 5—— 又名控制反转 —— 的技术来降低系统的耦合性。依赖注入可以通过构造器注入,接口注入和 setter 注入来实现。 Struts2 中用的是 setter 注入。这就是说,你只需要提供一个 setter ,对应的对象就可以被 Action 使用了。 Struts2 推荐的依赖注入框架是 Spring 框架,并通过插件对它进行配置。你还可以使用 Plexus ,或者是提供自定义的实现。

struts 中获得 HttpRequest 对象 :

Inteceptor 中获取 HttpServletRequest

  ActionContext ac = invocation.getInvocationContext();

        HttpServletRequest request = (HttpServletRequest) ac.get(ServletActionContext. HTTP_REQUEST );

Action 等其他类中获取 HttpServletRequest

HttpServletRequest request = ServletActionContext. getRequest ();

String  userNameReq  = request.getParameter( "userName" );

配置 struts 应用程序步骤说明 :

1、  导入 struts 应用程序需要的 jar (struts2 项目一般需要的 jar)

2、  配置 web.xml 文件 :

  < filter >

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

< filter-class > org.apache.struts2.dispatcher.FilterDispatcher </ filter-class >

</ filter >

< filter-mapping >

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

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

</ filter-mapping >

3、  src 路径下配置 struts.xml 初始文件。

  <! DOCTYPE  struts  PUBLIC

         "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

         "http://struts.apache.org/dtds/struts-2.0.dtd" >

< struts >

     < include  file = "struts-default.xml" />

</ struts >

4、  WebContent 路径下新建 html 文件,看是否能够访问。如果报 404 证明工程搭建有问题。

5、  成功访问,则创建对应的 jsp 文件和在 struts.xml 中配置对应的 action 等。在浏览器中访问对应的 action 时,如果采用标签则应该如下访问 :

<package name="tutorial" namespace="/" extends="struts-default">

页面 form 配置如下 :

< s:form  action = "login"  namespace = "/" >

User id < input  type = "text"  name = "userId"  />   < br />

Password   < input  type = "password"  name = "passwd"  />   < br  />

< input  type = "submit"  value = "Login" />

</ s:form >

如果采用 html 标记则配置如下 :

<form action="<%=request.getContextPath() /login.action">

注意 : 可以通过查看网页源码来看 form action 是否配置正确。

6、  相关 Struts 书籍及资料

F:\ 编程资料 \ struts\struts-2.1.6-all\struts-2.1.6\docs\docs\other-resources.html

示例程序导航

Apache Struts 2 Documentation > Home > Tutorials > Bootstrap > Hello World

一、  Bootstrap( 引导 )

标签的使用 :<s:url> 的使用 .

<s:url var= "url"  action= "Welcome" >

             <s:param name= "request_locale" > en </s:param>

         </s:url>

<s:a href= "%{url}" > English </s:a>

struts.xml action 配置可以不用配置 class.

<action name= "Welcome"  >

   <result>/Welcome.jsp</result>

</action>

  <default-action-ref> 用于在没有找到 action 的时候调用。

Struts 标签使用说明 :

<s:set> 标签设值,如果需要设置常量,需要在 value=”’’” 内部添加单引号。

<s:set var="name" value="'xieyun'" ></s:set>

动态传递参数

globalMessages_en_US.properties 配置如下 :myParam=xie-{0}

页面上调用如下 :

< s:text  name = "myParam" >

  < s:param > callan </ s:param >

</ s:text >

浪曦视频教程总结

一、基础知识说明

action 使用中,可以不继承 ActionSupport 类或实现 Action 接口。 Struts2 能够通过 struts.xml 文件中声明的 action 来反射解析 Action 类,但是该类必须包含一个返回字符串的 execute 方法。如果不声明 execute 方法会报错误如下 :

java.lang.NoSuchMethodException: com.test.action.LoginAction.execute()

java.lang.Class.getMethod(Unknown Source)

即使我们在 struts.xml 文件的 action 中申明一个 method 属性,指定一个方法,也会报上面的错误。

二、 struts2 类型转换

1 struts 中的错误验证

   Action 继承 ActionSupport 后, ActionSupport 里面有一个 Validate() 方法,该方法负责在执行 execute() 方法前进行一些输入参数的简单验证,如果我们在该方法类添加了错误信息 (addFieldError("userName","userName is required");) ,那么我们的 result 将会执行一个 input 结果,跳转到提交的页面 ( input 结果需要用户自己在 struts.xml 中进行配置 )

示例程序如下 :

Login.jsp

<%@  page  language = "java"  contentType = "text/html; charset=UTF-8"

     pageEncoding = "UTF-8" %>

<%@  taglib  prefix = "s"   uri = "/struts-tags" %>

<! DOCTYPE  html  PUBLIC  "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd" >

< html >

< head >

分享到:
评论

struts总结


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论