zoukankan      html  css  js  c++  java
  • struts2.1.6 action 01

     

    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: omcat

    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:share750_Struts2.1.6softstruts-2.1.6libstruts2-core-2.1.6struts-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 rjweb omcat-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.   
    6.    <filter-mapping>  
    7.        <filter-name>struts2</filter-name>  
    8.        <url-pattern>/*</url-pattern>  
    9.    </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.     
    11.      <filter>  
    12.         <filter-name>struts2</filter-name>  
    13.         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>  
    14.     </filter>  
    15.   
    16.     <filter-mapping>  
    17.         <filter-name>struts2</filter-name>  
    18.         <url-pattern>/*</url-pattern>  
    19.     </filter-mapping>  
    20.     
    21. </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.   
    6. <struts>  
    7. <!--   
    8.     <constant name="struts.enable.DynamicMethodInvocation" value="false" />  
    9.     <constant name="struts.devMode" value="false" />  
    10.   
    11.     <include file="example.xml"/>  
    12.   
    13.   
    14.   
    15.     <package name="default" namespace="/" extends="struts-default">  
    16.         <default-action-ref name="index" />  
    17.         <action name="index">  
    18.             <result type="redirectAction">  
    19.                 <param name="actionName">HelloWorld</param>  
    20.                 <param name="namespace">/example</param>  
    21.             </result>  
    22.         </action>  
    23.     </package>  
    24.  -->  
    25.     <!-- Add packages here -->  
    26.   
    27. </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.   
    7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
    8. <html>  
    9.   <head>  
    10.     <base href="<%=basePath%>">  
    11.       
    12.     <title>Hello Struts 2.1</title>  
    13.     <meta http-equiv="pragma" content="no-cache">  
    14.     <meta http-equiv="cache-control" content="no-cache">  
    15.     <meta http-equiv="expires" content="0">      
    16.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
    17.     <meta http-equiv="description" content="This is my page">  
    18.     <!--  
    19.     <link rel="stylesheet" type="text/css" href="styles.css">  
    20.     -->  
    21.   </head>  
    22.     
    23.   <body>  
    24.     Hello Struts 2.1 <br>  
    25.   </body>  
    26. </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:dongxingSSHstrutsstruts-2.1.6srccoresrcmainjava

     这样就可以看见了


    如果要看java docs文档
     D:dongxingSSHstrutsstruts-2.1.6docsstruts2-coreapidocs
    不过只有在一个类里面实现,选中你所要看的方法和属性-->F1 即可


    点击右边的文档即可

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


    结果自动提示如下:


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

    JUDE 视图  struts运行机制





          
                                                
  • 相关阅读:
    Could A New Linux Base For Tablets/Smartphones Succeed In 2017?
    使用libhybris,glibc和bionic共存时的TLS冲突的问题
    6 Open Source Mobile OS Alternatives To Android in 2018
    Using MultiROM
    GPU drivers are written by the GPU IP vendors and they only provide Android drivers
    Jolla Brings Wayland Atop Android GPU Drivers
    How to Use Libhybris and Android GPU Libraries with Mer (Linux) on the Cubieboard
    闲聊Libhybris
    【ARM-Linux开发】wayland和weston的介绍
    Wayland and X.org problem : Why not following the Android Solution ?
  • 原文地址:https://www.cnblogs.com/fclbky/p/4220802.html
Copyright © 2011-2022 走看看