`
snake_hand
  • 浏览: 573472 次
社区版块
存档分类
最新评论

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,有什么不对的地方请大家指出,非常感谢!!!

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics