• struts2学习笔记系列(二)


         在ssh2框架中,jsp页面负责展示相应的信息,并通过相应的配置同action联系起来实现逻辑判断。这里面只需要struts2,并在struts.xml文件中进行配置。

         一、新建web项目:

         打开myeclipse,点击右键,NEW->Web Project,起名为strutsTest1,并选择Java EE 5.0(这样就会在项目中带上jstl标签)。    

         二、为该项目添加struts2。

        点击项目名,右键,选择MyEclipse,选择Add Struts Capabilities。这样就会在项目中添加上struts2,会在src包下自动生成struts.xml文件。之后在src文件下新建一个包,名为source。选中source,右键,Build Path,选择第一个。将struts.xml文件拖入到source包中。

        三、在WEB-INF文件下新建一个文件夹,名为content,在这个文件夹中新建三个接jsp页面,分别是login.jsp、false.jap、true.jsp(jsp页面中的内容在后面内容中)

        四、在src包下新建包,名为conntroller,并在其中新建类,名为Login.java(代码在后面内容中)

        项目的结构如下图:   

        五、 下面介绍struts.xml的一些配置说明。    

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
     3 <struts>
     4     <package name="struts2" extends="struts-default" namespace="/">
     5         <action name="login" class="controller.Login" >
     6             <result name="success">/WEB-NF/content/true.jsp</result>
     7             <result name="false">/WEB-INF/content/false.jsp</result>
     8             <result name="login">/WEB-INF/content/login.jsp</result>
     9         </action>
    10     </package>
    11 </struts>  

         上面这段代码是struts.xml中的全部代码:package是对注册组建进行限定,name是自定义的。而extends属性的功能是对原有的struts2的功能进行继承,使得注册的action自带一些功能,所以在系统中必须自带一个struts-default.xml的配置文件。

         标记action是本例的主要部分,属性name是访问action的URL,而属性class属性指向的是action的路径,需要强调的是必须带上包名。

         子标记功能是执行完action后要到达的jsp页面的路径,name属性必须和action中的返回值是一样的,否则到达不了相应的jsp页面。

         六、下面对web.xml文件进行配置。

     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   <display-name></display-name>    
     8   <welcome-file-list>
     9     <welcome-file>index.jsp</welcome-file>
    10   </welcome-file-list>
    11   <filter>
    12       <filter-name>struts2</filter-name>
    13       <filter-class>
    14           org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    15       </filter-class>
    16   </filter>
    17   <filter-mapping>
    18       <filter-name>struts2</filter-name>
    19       <url-pattern>*.action</url-pattern>
    20   </filter-mapping></web-app>

         对web.xml文件进行说明:

         welcome-file-list指的是默认的访问jsp的页面,即使项目中没有index.jsp页面也没有关系,这个属性现在是无关紧要的。

         filter-name是添加过滤器,其实这些内容并不要太过深入的了解,上一片博客中已经介绍了struts2的过滤。

        七、下面贴出jsp页面的代码:

        1、login.jsp   

     1 <form name="login" method="post" action="login.action">
     2         <p>
     3             用户:<input type="text" name="username" id="textfield1" />
     4              <br /> 
     5              密码:<input type="text" name="password" id="textfield2" />
     6               <br /> 
     7               <br /> 
     8                <input type="submit" name="button" value="提交"/>
     9         </p>
    10     </form>

        这部分代码是body里面的内容,action属性必须同struts.xml文件中配置的名称是一致的,并且在名字后面加上.action,即上述代码的login.action。还需要注意的是两个text文本框的name属性必须同Login.action中的变量名相同!

        2、false.jsp 

    1 <body>
    2    登录出错!
    3  </body>

       3、true.jsp

    1 <body>
    2    欢迎!
    3 </body>

       八、贴出Login.Java的代码

     1 package controller;
     2 
     3 public class Login {
     4     private String username="";
     5     private String password="";
     6     
     7     public String getUsername() {
     8         return username;
     9     }
    10     public void setUsername(String username) {
    11         this.username = username;
    12     }
    13     public String getPassword() {
    14         return password;
    15     }
    16     public void setPassword(String password) {
    17         this.password = password;
    18     }
    19     public String execute() {
    20         if (username.isEmpty()||password.isEmpty()) {
    21             return "login";
    22         }
    23         else {
    24             if (username.equalsIgnoreCase("aaa")&&password.equalsIgnoreCase("123")) {
    25                 return "success";
    26             }else{
    27                 return "false";
    28             }
    29         }
    30         
    31     }
    32 }

        在Login.java中必须将变量设置get和set方法,这样才能从相应的jsp页面中取得值。(在代码区域点击右键,选择source-》选择Generate Getter and Setter,然后选中就行)。在该例子中判断用户名是不是aaa以及密码是不是123,成功就跳转到欢迎界面,即true.jsp。否则跳转到false.jsp页面。

        这样,整个例子就完成了,将项目部署到tomcat中,在浏览器中输入:http://localhost:8080/strutsTest1/login.action就可以了。

        由于我是初学java,有什么不对的地方请大家指出,非常感谢!!!

  • 相关阅读:
    java源码ReentrantLock源码分析1
    java源码Semaphore源码分析
    java源码HashMap源码分析
    java源码LinkedHashMap类设计
    java源码HashMap类设计
    java源码ConcurrentHashMap分析1
    java源码CountDownLatch源码分析
    转linux误删文件恢复 简单
    「翻译」Redis协议 简单
    刘昕明:送给和我一样曾经浮躁过的PHP程序员 简单
  • 原文地址:https://www.cnblogs.com/shangwuyuyi/p/2795384.html
Copyright © 2020-2023  润新知