想梦想

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的一些配置说明。

<?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>
     <package name="struts2" extends="struts-default" namespace="/">
         <action name="login" class="controller.Login" >
             <result name="success">/WEB-NF/content/true.jsp</result>
             <result name="false">/WEB-INF/content/false.jsp</result>
             <result name="login">/WEB-INF/content/login.jsp</result>
         </action>
     </package>
 </struts>

  

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

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

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

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

<?xml version="1.0" encoding="UTF-8"?>
 <web-app version="2.5" 
     xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
   <display-name></display-name>    
   <welcome-file-list>
     <welcome-file>index.jsp</welcome-file>
   </welcome-file-list>
   <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>*.action</url-pattern>
   </filter-mapping></web-app>

  

对web.xml文件进行说明:

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

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

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

    1、login.jsp

<form name="login" method="post" action="login.action">
         <p>
             用户:<input type="text" name="username" id="textfield1" />
              <br /> 
              密码:<input type="text" name="password" id="textfield2" />
               <br /> 
               <br /> 
                <input type="submit" name="button" value="提交"/>
         </p>
     </form>

  

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

    2、false.jsp 

<body>    
    出错!
</body>

  3.true.jsp

<body>    
   OK!
</body>

   八、贴出Login.Java的代码

package controller;
 
 public class Login {
     private String username="";
     private String password="";
     
     public String getUsername() {
         return username;
     }
     public void setUsername(String username) {
         this.username = username;
     }
     public String getPassword() {
         return password;
     }
     public void setPassword(String password) {
         this.password = password;
     }
     public String execute() {
         if (username.isEmpty()||password.isEmpty()) {
             return "login";
         }
         else {
             if (username.equalsIgnoreCase("aaa")&&password.equalsIgnoreCase("123")) {
                 return "success";
             }else{
                 return "false";
             }
         }
         
     }
 }

  

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

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

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

posted on 2012-11-30 08:53  想梦想  阅读(155)  评论(0编辑  收藏  举报

导航