例一、目标页面显示 ”我的第一个struts应用程序“
1.建立一个动态web项目
2.在WEBINF-lib下粘贴对应必须的jar包
3.配置web.xml:
<filter>
<filter-name>struts2</filter-name> //随意,开心就好
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> //ctrl+shift+t 输入strutspre显示的那个类的类名就是了
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4.在src下建立一个包在里面写添加一个类作为action类:HelloAction
package com.struts.action;
public class HelloAction { //action类中出了set/get方法外的方法都设为String类的方法
private String result;
public String execute()
{
result="我的第一个struts应用程序";
return "success";
}
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
}
5.在src下建立对应action类的struts.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC //这三行是struts.xml必备
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="struts" extends="struts-default">
<action name="hello" class="com.struts.action.HelloAction" method="execute"> //action name 为访问action的网页后缀 class为对应的action文件的全类名 method为需要 执行action文件中的什么方法
<result name="success">/a.jsp</result> //result name=“”为action文件String函数的返回值是什么 访问action后范围到a.jsp页面,在a.jsp中可以访问 //action中的属性
</action>
</package>
</struts>
6.在webcontent下建a.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hellostruts2</title>
</head>
<body>
${result }
</body>
</html>
完成!
启动tomcat运行 http://localhost:8088/8.1/hello
--------------------------------------------------------------------------------------------------------------------------------------------
例二、登陆信息验证(在例一项目中接着做)
建项目,导入jar包,配置web.xml例一已经做了
在com.struts.action包中建class : loginAction
package com.struts.action;
public class loginAction {
private String username;
private String userpass;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpass() {
return userpass;
}
public void setUserpass(String userpass) {
this.userpass = userpass;
}
public String execute()
{
if("mr".equalsIgnoreCase(username)&&"123".equals(userpass))
return "success";
return "login";
}
}
strut.xml中写匹配上面action类的
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="struts" extends="struts-default">
<action name="hello" class="com.struts.action.HelloAction" method="execute">
<result name="success">/a.jsp</result>
</action>
<action name="LoginA" class="com.struts.action.loginAction" method="execute">
<result name="success">/token/succ.jsp</result>
<result name="login">/token/index.jsp</result>
</action>
</package>
</struts>
在webcontent下建文件token 建jsp:index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<s:form action="LoginA"> //匹配struts.xml中的action name的内容
<s:label value="登录信息"></s:label>
<s:textfield name="username" label="用户名"></s:textfield>
<s:password name="userpass" label="密码"></s:password>
<s:submit value="登录"></s:submit>
</s:form>
</body>
</html>
在webcontent下建文件token 建jsp:succ.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
Succ
</body>
</html>
完成! 在index.jsp开始访问
-----------------------------------------------------------------------------------------------------------------------------------------------
流程:
由网址后缀如....login 到struts.xml文件中找对应的action name
然后根据后面的 class找到对应的action类(class文件)
然后再根据后面的method 执行action文件中的对应方法,
根据返回值在structs的result中跳转到目标位置返回返回浏览器