zoukankan      html  css  js  c++  java
  • Struts2 helloWorld

    3HelloWorld准备

    201153

    9:18

    1:创建Web Project后,在MyEclipse里面的window 下的preferences里面配置好tomcat的路径还有JRE的路径。

    2:下载的struts 的包,要看里面的例子

    3:struts.xml文件拷贝到src包下,不要放在WEBINFO下面,因为编译后,struts配置文件就会自动的放到webinfo下面

    4:拷贝过去lib

     

    5:找到例子中的filter拷贝过去

    6:如果用开发模式的话,要把前面的 <constant name="struts.devMode" value="false" />拷贝到新建的<package>前面,表示开发模式,把value值设置为true

    7:查看struts这个的源码

    右键工程,属性,找到Java source Attachment,然后往里面找到D:/JarPackage/struts-2.2.1.1/src/core/src/main/java

    8:如何编辑xml的时候会给提示?

    Window preferences,敲入

    carlog里面配置dtd,可以从struts2里面的一个core文件解压开,然后找到dtd,然后在window preference里面配置路径,注意选择url,下面的key可以去原来的文件中复制网址

     

    9:在浏览器里面输入url  http://zhaoxin-pc:8080/Struts2_0100_Intruduction/hello后,通过http协议,发送给tomcattomcat发现WebAPP是项名字 Struts2——0100——Introduction,把这个Webapp交给对应的程序处理,要读这个webapp里面的web.xml文件看是怎么配置的,从web.xml里面找到了filter,这个filter过滤所有地址,我们敲击地址的时候就会被

    计算机生成了可选文字: >orq.apache.3trut32.d13patcher.nq.f1lter.Strut3PrepareAndExecuteF11ter</]

    接收到,它如何处理?首先看namespace,从struts.xml里面插,然后找/后面的action,也是从struts里面去查。

    10:首先客户端输入地址,浏览器就把请求发给tomcattomcat收到请求后找交给那个webapp去做处理,找到webapp后,会参考里面的web.xml,在里面的filter中找到处理的类,这个类参考struts.xml,首先参考namespace,再找对应的action,然后找对应的result,然后把这个请求发送给对应的jsp文件。然后这个jsp文件就会把内容反馈给客户端。

    11

    计算机生成了可选文字: 净口协刀丫
耳平口孵到一
11_!
巴料
}
浦p
价义。九怕L.p口,。,口而‘110
1,do「怕犷0
e3paceo
晒黔
一
一
己」幻O
'11句
.14m.,'ag一50

    12:为么搞的这么麻烦?

    设计模式好处是可扩展性,那么这个为么这么麻烦?struts2好处在于可以把请求和展现分开。分开的好处就是要想改成别的视图,配置下就可以


    4Struts2HelloWorld例子程序以及遇到的问题解决

    201165

    18:41

      首先在Myeclipse里面建立web project,命名为:myStruts2.

     

     struts2 的包引入。

      然后配置web.xml,里面配置好filtermap,增加如下

     <filter>

            <filter-name>struts2</filter-name>

            <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

        </filter>

        <filter-mapping>

            <filter-name>struts2</filter-name>

            <url-pattern>/*</url-pattern>

        </filter-mapping>

      struts2自己带着的例子程序里面拷贝struts.xml,放到src包下

      然后修改index.jsp文件,如下:

    <body>

        <h2><s:form action="Login">

        <s:textfield name="message" label="你的姓名"/>

        <s:submit value="提交"></s:submit>

        </s:form></h2>

    </body>

    并且在jsp文件前方加上<%@taglib prefix="s" uri="/struts-tags" %>,用来引入struts2标签库

     再写LoginAction

    public class LoginAction extends ActionSupport {

    private String message;

    public String getMessage() {

    return message;

    }

    public void setMessage(String message) {

    this.message = message;

    }

    @Override

    public String execute() throws Exception {

    // TODO Auto-generated method stub

    if(message.equalsIgnoreCase("zhaoxin")) {

    return SUCCESS;

    }else {

    return ERROR;

    }

    }

    }

    问题1:这里曾经遇到问题,在重写的execute()方法中if语句中return SUCCESS,其实和返回return "success"是一样的,但是在后边struts.xml中映射action的时候要注意,对于result一定要写成 name=success”;

     这里定义了一个action,那么要回去struts2文件中定义action的映射

            这里可以加入开发模式那个一行,所以,如果改一点东西的话,就会立即反馈,不需要重启服务器了

    <package name="default" namespace="/" extends="struts-default">

            <!--<default-action-ref name="index" />-->

            <action name="Login" class="dianxin.LoginAction">

                <result name="success">/helloWorld.jsp              

                </result>

            </action>

        </package>

       重新思考

    对于这个工程,运行后,首先是web.xml找到filterstruts2,在index里面把输入的内容通过message得到,点击提交按钮后,在struts.xml里面,根据action对应的class为: dianxin.LoginAction,那么把message交给这个类处理,这个类里面,判断是不是,是的话,返回success字符串,然后到struts.xml里面同一个action里面找对应的result,然后跳转到对应的页面。(最后把项目运行起来后再看这句话,项目下载地址在下面)

     总结

    Struts2 HelloWorld纠结了好久,今天下午终于解决掉了,以前老是出现404错误,根据我的经验,如果出现了这个404错误,首先就回去找struts.xml中的action映射,首先检查actionnameindex.jspform表单的actionname是不是相同。然后看action对应的class,最后看result

    一般情况下,为了保证命名空间还有filter之类的不出现错误,能从struts2的例子程序中拷贝就一定要拷贝,不要自己写。

      自己做的这个实验工程包下载地址:http://download.csdn.net/source/3341784




    1JSPJava文件等的编码方式,尤其是有时候的乱码问题,对于JSP来说,除了可能是eclipse的默认的编码方式外,还有可能就是在JSP的开头设定的编码方式就不对。

    2:对于JSP的标签库还需要了解,对于HTML也需要好好了解下。

    3:在用JSP标签库的时候注意form的范围

    4action类是继承自ActionSupport。一般要重写execute方法,用来返回信息。

  • 相关阅读:
    [puppet]如何设置全局exec path
    noVNC配置小结
    [CloudOps]解决Windows系列镜像在Openstack上蓝屏
    解决 /usr/bin/env: php: No such file or directory
    构建一个多区域的公有云平台:Stacklab
    ssh自动添加hostkey到know_hosts
    A few thoughts about Open Source Software
    简单翻译:Understanding Linux Network Internals 2.2. net_device Structure
    近期小结
    [Music]《our love will always last》
  • 原文地址:https://www.cnblogs.com/allenzhaox/p/3201810.html
Copyright © 2011-2022 走看看