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