struts总结

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">

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

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.xmlaction配置可以不用配置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类型转换

1struts中的错误验证

   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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值