struts 官网下载

http://www.apache.org/

http://struts.apache.org/

http://struts.apache.org/download.cgi#struts2231

. 下载struts2.1.6 http://struts.apache.org/download.cgi#struts217 
(选择下载full distribution)

2. 下载myeclipse,http://www.myeclipseide.com

3. 下载tomcat,http://tomcat.apache.org

4. 下载xwork,http://www.opensymphony.com/xwork (要注意的是下载与struts2.1.6的对应版本,即2.1.2)

安装与设置

1. 解压struts2.1.6,假设解压后位于d:\struts2目录

2. 安装MyEclipse,任何版本都可以

3. 假设你已经安装好jdk和tomcat了,如d:\tomcat

HelloWorld

1. 建立项目

a) 打开eclipse

b) 新建项目

c) 选择myeclipse-java enterprise projects-web project

d) 项目名称:struts2_0100_introduction

e) 选择java ee 5.0

2. 设定server

a) window – preferences – myeclipse – servers – tomcat – 6.x

b) 选择tomcat home directory

c) 选择enable

d) finish

3. 设定jdk环境

a) window – preferences – java – installed jres

b) 如果没有对应的JDK(不是JRE),选择add

c) 选择standard VM -> next

d) 选择JDK对应的Directory

e) 将刚刚设定的JDK设为默认

4. 建立第一个struts2.1的程序

a) 找到struts目录下对应的apps目录

b) 解压struts2-blank-2.1.6.war

c) Copy对应的lib的jar文件,需要除junit和spring-test之外的所有文件,其中commons-io的jar包会在文件上传和下载时需要,其他为必须

d) Copy对应的struts.xml到src目录,在package explorer视图进行操作

e) 注释掉struts.xml的多余内容

f) 建立HelloStruts2_1.jsp文件

g) *修改jsp文件的默认编码属性window-preferences-web-jspfiles-设为Chinese,National Standard

h) 在struts.xml中照原配置进行对应的配置

i) 修改对应的web.xml,建立struts2的filter(参考struts自带的项目)

5. 运行项目

a) 可以首先部署到tomcat上项目

b) 也可以项目右键debug as – myeclipse server app,选择刚刚建立好的server

6. 其他

a) 学习建立struts的dev-mode,好处在于我们修改了配置文件的时候能够自动热替换

b) 建立jar文件对应的源码D:/share/tools/struts-2.1.6/src/core/src/main/java,以及xwork对应的源码,以及对应的javadoc location,(更好的方式是建立自己的user-library)

c) 浏览struts的目录

d) 认识eclipse jee的项目部署目录,认识如何修改webapp的context-root,项目copy改名后可能会出现的问题

e) package explorer – 建立jar的源文件和目标关联,navigator – 观察所有的内容

f) 认识Action的后缀名,在struts2默认中,带不带action都可以

常见问题:

1. struts.xml不自动提示

a) window – preferences – 搜索 catalog – add

b) 选择key type为URI

c) key: http://struts.apache.org/dtds/struts-2.0.dtd

d) location: 对应的dtd文件,位于struts-core包中,解压开,指定相应位置,如:D:\share\0750_Struts2.1.6\soft\struts-2.1.6\lib\struts2-core-2.1.6\struts-2.0.dtd

2. 导入示例项目

a) 注意JDK的版本,应该是JDK6,否则会出class version的问题

b) 如果总是项目出问题,可以重建项目,单独拷文件

c) 还有一种情况是项目右键,properties – java – compiler 选择6.0

d) 另外,在tomcat配置中也要使用jdk6

3. devMode设为true就会出问题空指针问题

a) tomcat路径带了空格

4. 在使用ActionContext.getContext().get(“request”)取不到对象,为null值

a) web.xml不要使用2.0的filter,用新的

5. 在action的试验中,遇到一个奇怪的bug

a) 用default-action-ref指定一个action

b) 用*_*映射

c) 在地址栏中访问一个不存在的action,如adfsdfsfs

d) 结果居然会映射到*_*上

e) 如果换成*__*就没问题了

f) 靠,只能认为是bug

g) 下次用*-*,不用*_*

Action

1. 实现一个Action的最常用方式:从ActionSupport继承

2. DMI动态方法调用 !

3. 通配符配置 * {1} {2} …

a) *_*

4. 接收参数的方法(一般用属性或者DomainModel来接收)

5. 简单参数验证addFieldError

a) 一般不使用Struts2的UI标签

6. 访问Web元素

a) Map类型

i. IoC

ii. 依赖Struts2

b) 原始类型

i. IoC

ii. 依赖Struts2

7. 包含文件配置

8. 默认action处理

²操作
²happy的操作
²尊重学习规律的操作
±学习上痛苦的根源之一是只能走的时候逼我来跑
°不是说深入的内容就不讲了,而是放到合适的时候讲
±一段时间可以,长了集中不了精力
±先讲应用,再讲理论,先学脉络,后学细节
±去掉让同学们学的不舒服的地方

打开项目方法


java EE  5.0 会自动的加上JSTL

会出现一个对话框只要你的级别比它高都没问题
加完一个Struts 2 项目的时候有几个地方还需要设置
1、部署tomcat  以下程序安装运行在
<constant name="struts.devMode" value="true"/>    报错
因为  D:java rj\web\tomcat-6.0.18    有空格


改成如下目录没有报错,一切加载正常

<constant name="struts.devMode" value="true"/>    
OK

2、jdk安装



确认jdk

3、查看Struts 2 的软件

把struts .xml 文件拷贝到src 目录下面去

再把Struts需要用的jar文件拷贝到lib目录下面  

如果想看项目在硬盘上什么样子可以 
Window ----> show view --->other ---> General 下面的Navigator

下一步再配置 web.xml 

  1. <filter>
  2. <filter-name>struts2</filter-name>
  3. <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  4. </filter>
  5. <filter-mapping>
  6. <filter-name>struts2</filter-name>
  7. <url-pattern>/*</url-pattern>
  8. </filter-mapping>
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  6. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  7. <welcome-file-list>
  8. <welcome-file>index.jsp</welcome-file>
  9. </welcome-file-list>
  10. <filter>
  11. <filter-name>struts2</filter-name>
  12. <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  13. </filter>
  14. <filter-mapping>
  15. <filter-name>struts2</filter-name>
  16. <url-pattern>/*</url-pattern>
  17. </filter-mapping>
  18. </web-app>
  1. <url-pattern>/*</url-pattern>  永远这么写

把struts 标签里面的全部注释用来参考

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  4. "http://struts.apache.org/dtds/struts-2.0.dtd">
  5. <struts>
  6. <!--
  7. <constant name="struts.enable.DynamicMethodInvocation" value="false" />
  8. <constant name="struts.devMode" value="false" />
  9. <include file="example.xml"/>
  10. <package name="default" namespace="/" extends="struts-default">
  11. <default-action-ref name="index" />
  12. <action name="index">
  13. <result type="redirectAction">
  14. <param name="actionName">HelloWorld</param>
  15. <param name="namespace">/example</param>
  16. </result>
  17. </action>
  18. </package>
  19. -->
  20. <!-- Add packages here -->
  21. </struts>

配置第一个

  1. <package name="default" namespace="/" extends="struts-default">
  2. <action name="hello">
  3. <result>
  4. /Hello.jsp
  5. </result>
  6. </action>
  7. </package>

用文本编辑器JSP 打开,页面打开会比较快

写的第一个Hello.jsp程序

  1. <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. %>
  6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  7. <html>
  8. <head>
  9. <base href="<%=basePath%>">
  10. <title>Hello Struts 2.1</title>
  11. <meta http-equiv="pragma" content="no-cache">
  12. <meta http-equiv="cache-control" content="no-cache">
  13. <meta http-equiv="expires" content="0">
  14. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  15. <meta http-equiv="description" content="This is my page">
  16. <!--
  17. <link rel="stylesheet" type="text/css" href="styles.css">
  18. -->
  19. </head>
  20. <body>
  21. Hello Struts 2.1 <br>
  22. </body>
  23. </html>

我用的是8.6 的myeclipse 程序可以把项目做为 server application 直接运行

选择刚配置好的Tomcat 服务器运行即可
运行先看看tomcat 服务器是否正常,循序渐进。

第一个struts 项目运行

  1. <constant name="struts.devMode" value="false" />  改成  <constant name="struts.devMode" value="true" /> 开发模式,自动加载项目,就是你改程序的时候马上有所反馈  不过必须要你的 tomcat 安装目录没有空格 否则会报错

要看struts2 里面的源码如下struts2 上点右键 D:\dongxing\SSH\struts\struts-2.1.6\src\core\src\main\java

 这样就可以看见了

如果要看java docs文档
 D:\dongxing\SSH\struts\struts-2.1.6\docs\struts2-core\apidocs
不过只有在一个类里面实现,选中你所要看的方法和属性-->F1 即可


点击右边的文档即可

自动加载struts2的标签 struts2-core-2.1.6.jar 解压在一个文件里面 struts-2.0.dtd 
window -->XML catalog  
D:\dongxing\SSH\struts\struts-2.1.6\lib\struts2-core-2.1.6\struts-2.0.dtd
URi   
http://struts.apache.org/dtds/struts-2.0.dtd

结果自动提示如下:

设计模式主要目的: 就是可扩展性
struts 就是把你的请求和你的展现分开

JUDE 视图  struts运行机制

  
                                            

struts2.1.6 action 01的更多相关文章

  1. struts2中把action中的值传递到jsp页面的例子

    例子: RegistAction的代码: package com.wss.action; import javax.servlet.http.HttpServletRequest; import or ...

  2. Struts2从一个action转到另一个action的两种方法

    在Struts2中,Action处理完用户请求后,将会返回一个字符串对象,这个字符串对象就是一个逻辑视图名.Struts 2通过配置逻辑视图名和物理视图之间的映射关系,一旦系统收到Action返回的某 ...

  3. Struts2 从一个Action跳至另一个Action

    Struts2  从一个Action跳至另一个Action 一.注解的 @Result(name=SUCCESS,type="chain", params={"actio ...

  4. 在Struts2中配置Action

    在Struts2中配置Action <package>: 1.定义Action使用<package>标签下的<action>标签完成,一个<package&g ...

  5. struts2配置文件中action的name属性

    struts2配置文件中action的name属性的第一个字符不要加斜杠 <action name="see" class="baoxiuManage_seeAct ...

  6. spring没能给struts2创建出action,可能出现的原因

    spring没能给struts2创建出action,可能出现的原因: 1.没有加载struts2-spring-plugin-2.1.8.1.jar 2.包冲突,删除asm.jar(网上说的) 3.s ...

  7. struts2 模型驱动的action赋值优先顺序

    struts2 模型驱动的action赋值优先顺序: 1.优先设置model的属性. 2.如果model属性中没有对应的成员变量,则向上冒泡,寻找action中的属性进行set. 如果action中的 ...

  8. Struts2的动态Action和全局跳转视图以及配置各项默认值

    1:Struts2的默认访问后缀是.action(特别需要注意的是改了配置文件web.xml或者struts.xml需要重启服务器) 2:Struts2中常用的常量介绍:<!-- 一:全局配置 ...

  9. Struts2的动态Action实现

    源自:Struts2的动态Action实现 在Struts2中动态方法调用有三种方式. 一.指定method属性在struts.xml中指定action的method属性. <package n ...

随机推荐

  1. perl 入门知识(1)

    <一> 语句及注释: Perl 语句以分号(;)结尾,用 # 作为一行的注释,没有其它语言中那种跨行的注释.代码块用大括号围起来,这个和 C 类似,但这个大括号在有些地方是强制要求,如在 ...

  2. mysql时间格式化函数日期格式h和H区别

    本文为博主原创,未经允许不得转载: 今天碰到一个问题,发现项目中有一个统计图的数据和时间格式没有对应准确,统计图要描述的是操作次数和操作时间的关系, 但很奇怪的是操作次数对应的时间却是凌晨,实际应用中 ...

  3. UVa 10905 孩子们的游戏

    https://vjudge.net/problem/UVA-10905 题意: 给定n个正整数,把它们连接成一个最大的整数. 思路: 实在是没想到直接用string来排序了. #include< ...

  4. HTTP协议中TCP的三次握手 and HTTPS

    https://www.cnblogs.com/zxh930508/p/5432700.html https://www.cnblogs.com/digdeep/p/4832885.html

  5. hdu 5525 Product 数论算贡献

    Product Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Proble ...

  6. Cocos2d-x学习笔记(四) HelloWorld场景类

    类定义原型如下: #ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #include "cocos2d.h" ...

  7. Intel微处理器学习笔记(二) 三种模式

    三种模式:实模式.保护模式和平展模式. 实模式存储器(DOS存储器)位于00000H~FFFFFH,共1M空间(任何型号微处理器都支持). 保护模式存储器(Windows存储器)可位于整个保护存储系统 ...

  8. Goroutines和Channels(五)

    Channels也可以用于将多个goroutine连接在一起,一个Channel的输出作为下一个Channel的输入.这种串联的Channels就是所谓的管道(pipeline).下面的程序用两个ch ...

  9. STL_函数对象01

    1.自定义函数对象 1.1.简单例子: //函数对象 struct StuFunctor { bool operator() (const CStudent &stu1, const CStu ...

  10. (转)Attribute在.net编程中的应用

    Attribute在.net编程中的应用(一)Attribute的基本概念 经常有朋友问,Attribute是什么?它有什么用?好像没有这个东东程序也能运行.实际上在.Net中,Attribute是一 ...