由于现在struts1不常使用了,对于struts1的了解也不是很多,就说Struts2吧,struts的视频是看过期好久好久了一直没有系统的整理,这次打算搭建SSH框架,再重新梳理一遍,说起Struts2我们都知道是由传统的Struts、webwork两个经典MVC框架发展起来的,所以从各种角度来说Struts2都是一个优秀的MVC框架。
今天就先写一个使用struts2框架实现的登录的小实例:
第一步:需要编写web.xml文件:
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>strutsdemo</display-name> <!-- 建立web与struts的关联***************start************** --> <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> <!-- 建立web与struts的关联***************start************** --> </web-app>
第二步:引入struts2需要的jar包:添加到web-info下的lib文件下:
第三步:建立登录的jsp页面:
<!-- 定义标签库 --> <%@taglib prefix="s" uri="/struts-tags" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>登录</title> </head> <body> <!-- 定义一个表单和三个简单表单域 --> <s:form action="login"> <s:textfield name="username" key="user"></s:textfield> <s:textfield name="password" key="pass"></s:textfield> <s:submit key="login"></s:submit> </s:form> </body> </html>
第四步:在jsp中指定表单的action为login,因为必须定义action,代码如下:
package com.tgb.struts2; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport { //定义封装请求参数的username和password 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; } /** * 重写用户请求的execute方法 */ @Override public String execute() throws Exception { // TODO Auto-generated method stub if(getUsername().equals("jly") && getPassword().equals("0")) { ActionContext.getContext().getSession().put("user",getUsername()); return SUCCESS; } else { return ERROR; } } }
第五步:struts配置文件:增加了Action类之后,还需编辑相应的配置文件:其中需要说明的是,代码中的key是设置的常量,那么这个是在哪里设置的呢?这样:Struts2框架有两个核心配置文件,其中Struts.xml主要负责管理应用中的action映射以及action处理结果和物理资源之间的映射关系,除此之外还包含了一个struts.properties文件,主要用于定义框架的大量常量属性。我们先来看struts.xml配置文件内容:
<struts> <!-- 通过constant元素配置Struts2的属性 --> <constant name="struts.custom.i18n.resources" value="mess"></constant> <package name="demo" extends="struts-default"> <action name="login" class="com.tgb.struts2.LoginAction"> <result name="input">/login.jsp</result> <result name="error">/error.jsp</result> <result name="success">/welcome.jsp</result> </action> </package> </struts>
定义变量的文件为:
这样jsp页面的显示效果为:
这是一个简单的实例,其中有一个亮点是mess.properties文件可以灵活的配置常量的属性。
时间: 2024-11-08 23:52:10