【笔记】struts2学习笔记(二)--常见问题/一些配置/Myeclipse使用

其他学习任务

1.学习建立struts的dev-mode,好处在于我们修改了配置文件的时候能够自动热替换devMode即开发模式)

     例如:当把struts.xml中action的name修改为hello_struts时输入http://127.0.0.1:8080/Struts2_0100_Introduction/hello_struts出错,

                  原因:修改后不能立即反馈,需要重启服务器才能完全修改

                  解决办法:从struts.xml注释掉的内容中copy出来    这样改为后马上有反馈

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

                  注意:如果初始value值为false,应改为true

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
   <constant name="struts.devMode" value="true"/>
   <package name="default" namespace="/" extends="struts-default">
        <action name="hello">
            <result>
		       /Hello.jsp
            </result>
        </action>
    </package>
</struts>    

2.MyEclipse中显示struts的源码 和doc文档 

建立Jar文件对应的源码:在你做下载的struts-2.1.6解压后struts-2.1.6/src/core/src/main/java,以及xwork对应的源码,以及对应的javadoc location,(更好的方式是建立自己的user-library)

    1)看源码

     例如:在web.xml中有一行

        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
                想看org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter,这是一个类。

                a) 用上面方法一手动导入jar包在:

                         项目名称--->web app  Libraries-->struts2-core-2.2.1-->org.apache.struts2.dispatcher.ng.filter-->org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.class  并不能看到源码,

                       要进行设置:

                        右键struts2-core-2.2.1-->Properties--Java  Source Attachment-->External Folder(下载的Struts jar包-->src-->core-->src-->main-->java)





           b)myeclipse自动导入struts2包在:项目名称-->Struts2 Core Libraries下

    2)看doc文档

             项目名称-->Struts2 Core Libraries-->struts2-core-2.2.1-->右键-->Properties-->Javadoc Location-->Javadoc URL-->Browser(下载解压的Struts2.3.16.1-->docs-->WW-->docs-->struts2-core-->apidocs)-->apply-->OK

            随便新建一个T类

public class T {
	org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter f;
}

           鼠标覆盖类名StrutsPrepareAndExecuteFilter,同时按F1,myeclipse右侧出现 相应的 java.doc ,点击后可查看StrutsPrepareAndExecuteFilter的 doc 文档





下一个项目在上一个项目上Copy,这样相关设置就不用再设了

3.如何导入项目

      1)拷贝项目

             a)Ctrl+c

             b)在项目显示栏ctrl+v,另起一个名字Test.

             c)部署到Tomcat服务器

             d)Test项目右键-->Properties-->Myeclipse-->Web-->Web COntent -->root改为/Test

       2)导入别人项目

              a)Import-->General-->Existing Project into Workspace

              b)

                

               c)唯一可能出现问题的地方

                  如果别人项目引用的是JRE System Library,而你的不叫这名,且放在了别的路径,这时需将其去掉,重新配置一下。

                  即:项目右键-->Bulid Path-->Configure Bulid Path-->Libraries-->Add Library-->JRE System Library-->Workspace default JRE-->OK

4.改jsp编码格式(默认为iso)

          Window-->Proferences-->搜索jsp-->Encoding改成Chinese National Standard

5.浏览struts的目录

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

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

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

常见问题

1.struts.xml不自动提示

   a)window – preferences – 搜索 catalog(得到XML-->XML Catalog) – add

   b)选择key type为URI

   c)key: http://struts.apache.org/dtds/struts-2.0.dtd(在struts.xml文件里有此地址)

   d)location: 对应的dtd文件,位于下载并解压的Struts2.3.16.1-->lib-->struts2-core-2.3.16.1-->解压开--打开后可以看到struts-2.0.dtd。在location一栏填 如: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)下次用*-*,不用*_*

学习方法说明

1.先阅读老师的代码

2.再建立自己的项目进行动手学习


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值