天天看点

SSH框架学习之Struts2(1):Hello World

参考视频:尚学堂

Action入门:由hello world介绍struts

先应用,再理论

  1. 打开myEclipse
  2. 右键new – Project – MyEclipse – Java Enterprise Project – Web Project
    SSH框架学习之Struts2(1):Hello World
  3. 写项目名称,选就Java EE 5.0 , finish
    SSH框架学习之Struts2(1):Hello World
  4. 有几个地方要设置,这里要小心:

    Window – Preferences – MyEclipse – Servers – Tomcat的位置,选enable

    SSH框架学习之Struts2(1):Hello World
    window – Preferences – java – Installed jres,不放心的话就选自己的jdk
    SSH框架学习之Struts2(1):Hello World
  5. 用准备好的Struts2软件,解压之后观察一下目录
    SSH框架学习之Struts2(1):Hello World

    src: 源码

    lib: 类库

    docs: 文档

    apps: 示例程序

    用的是apps,里面有五个war文件,可以用WinRAR直接打开并且解压。

    解压blank文件,打开WEB-INF,classes下,找到配置文件,拷Struts.xml,到src目录下。

    拷类库:lib下,到lib下

    这个视图下是看不到的,打开window – show view – other – Navigator

    SSH框架学习之Struts2(1):Hello World
    SSH框架学习之Struts2(1):Hello World
    配置web.xml:配置filter
    SSH框架学习之Struts2(1):Hello World
  6. struts.xml中,struts标签里的东西都注释掉(方便仿照),package标签中拷贝过来,更改
    SSH框架学习之Struts2(1):Hello World
  7. 部署到服务器,测试。

    出现的问题:

    1.java.lang.RuntimeException: java.lang.reflect.InvocationTargetException

    引入javassist-3.11.GA.jar包解决

    2.java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils

    引入commons-lang3-3.1.jar包解决

    后来重新测试时删掉这两个包也没有出错,不知道为什么

    3.测试时因为配置里有namespace,地址栏写法要注意。

    结果:

    SSH框架学习之Struts2(1):Hello World

小知识点:

  1. struts标签中里有一个配置:
    <constant name="struts.devMode" value="true" />
               
    重新启动部署之后,更改action的name属性之后,可以不用重启直接访问,否则得重启服务器
  2. 查看源码:找到jar包class之后,右键properties,java Source Attachment,External Folder,struts文件目录所在,src–core–src–main–java,ok
  3. 查看javadoc文档:struts-2-core.jar包,右键properties,javadoc location,browse,struts文件下,docs–core–api,ok。好处在于可以再eclipse里面观察javadocs的操作:当我们选中某个类的名字之后按F1,会给你显示出java doc ,点击之后可以直接显示出这个类的API。
  4. 创建xml文件给提示:

    window – properties –搜索catalog –XML Catalog – add –struts文件下lib中struts-core文件 – 解压 –找到dtd文件 –add中key type选URI,key:http://struts.apache.org/dtds/struts-2.3.dtd, location:刚刚解压dtd文件的路径。这样xml中敲内容时候就可以给提示了。

struts背后的运行机制

URL地址–http协议–tomcat–web application–web.xml–filter过滤所有的地址–被org…接收到–查struts.xml的namespace–查action name属性

核心: 把请求和展现分开。

namespace

namespace决定了action的访问路径,默认为”“,可以接收所有路径的action

namespace可以写为/,或者/xxx,或者/xxx/yyy,对应的action访问路径为/index.action,

/xxx/index.action,或者/xxx/yyy/index.action.

namespace最好也用模块来进行命名,比如用户管理模块,就起名叫/user

struts.xml中,package标签用于解决重名情况

result标签name默认为success

Copy项目

copy之后要改一个东东:

右键properties–myeclipse – web–web Context root改路径

引入别人的项目

import – general –existing projects into workspace – 选择路径 –Copy project选中 – 部署

jre – remove掉 重新配置 – build path – library – 重新加进来