Struts2的简单使用(一)

今天学习了一下Struts2框架的搭配~

也简单的使用Struts2框架学习了Action和怎么使用核心配置文件struts.xml~

主要实现了网页上的简单登录注册~

项目结构如图:



写了俩个类,一个是pojo类,一个是action类~,还有俩个jsp,分别代表登录与注册~

pojo类顾名思义是Bean文件~

action类是包含一些映射配置方法,和struts.xml文件一起使用的~

步骤:

1.先写一个User类,User类包含了一些注册用户的信息,代码如下:

public class User implements Serializable{

	
	private static final long serialVersionUID = 1L;
	private Long id;
	private String name;
	private String password;
	private Integer age;
	private Boolean gender;
	public User() {
		super();
		// TODO Auto-generated constructor stub
	}
	public User(Long id, String name, Integer age, Boolean gender,String password) {
		super();
		this.id = id;
		this.name = name;
		this.age = age;
		this.gender = gender;
		this.password=password;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	public Boolean getGender() {
		return gender;
	}
	public void setGender(Boolean gender) {
		this.gender = gender;
	}
	@Override
	public String toString() {
		return "User [id=" + id + ", name=" + name + ", password=" + password + ", age=" + age + ", gender=" + gender
				+ "]";
	}
	
}

要在核心配置文件 struts.xml中配置Action

2.要在如图所示的下面配置Action,如图:



有三种配置方式:

第一种:

		<action name="user_*" 
			class="com.xu.struts2.web.action.UserAction"
			method="{1}">
			<result name="login">/WEB-INF/jsp/login.jsp</result>
			<result name="register">/WEB-INF/jsp/register.jsp</result>
			<result name="index">/WEB-INF/jsp/index.jsp</result>
		</action>
含义如下:



相信应该已经解释的很清楚~,我在UserAction里面写了如下方法:

	public String toLogin(){
		System.out.println("跳转到登录页面");
		return "login";
	}
	
	public String toRegister(){
		System.out.println("跳转到注册页面");
		
		return "register";
	}
写了这俩个方法还不够,还要写登录和注册的jsp,代码如下:

login.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>登录页面</title>
</head>
<body>
     <h3>登录页面</h3>
     <hr>
     <form action="LoginServlet">
        用户名:<input type="text" name="name"/><br>
        密码:<input type="password" name="password"/><br>
        <input type="submit" value="登录">
     
     </form>
</body>
</html>
register.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>注册页面</title>
</head>
<body>
     <h3>注册页面</h3>
     <hr>
    <form >
            用户名:<input type="text" name="name"/><br>
            密码:<input type="password" name="password"/><br>
            确认密码:<input type="password" name="repassword"/><br>
            性别:<input type="radio" name="gender" value="true" checked="checked">男
            <input type="radio" name="gender" value="false">女
            <br>
            年龄:<select name="age">
              <option value="">请选择</option>
				<%
					for(int i=10;i<=30;i++){
				%>
				<option value="<%=i %>"><%=i %>周岁</option>
				<%
					}
				%>
            </select>
            <br>
            <input type="submit" value="注册">
     </form> 
</body>
</html>
只用一个测试就好~

打开服务器

进入浏览器输入localhost:9999/Struts2/user_toLogin.action,效果如图:

第二种:

特定的action,代码如下:

	<action name="toLogin"
		    class="com.xu.struts2.web.action.UserAction"
		    method="toLogin">
		    <result name="login">/WEB-INF/jsp/login.jsp</result>
		</action> 
测试效果:


看,这种方式也可以访问登录页面

第三种--动态方法配置,代码如下:

<struts>
    <constant name="struts.enable.DynamicMethodInvocation" value="true" />
    <constant name="struts.devMode" value="true" />
    <constant name="" value=""></constant>

    <package name="default" namespace="/" extends="struts-default">
		<!-- 3. -->
		<!-- user!toLogin.action -->
		<action name="user"
		    class="com.xu.struts2.web.action.UserAction">
		    <result name="login">/WEB-INF/jsp/login.jsp</result>
			<result name="register">/WEB-INF/jsp/register.jsp</result>
			<result name="index">/WEB-INF/jsp/index.jsp</result>
		</action>
    </package>
    <!-- <include file="example.xml"/> -->
</struts>

必须要注意的是,这种方式一定要做一个操作,如图:


有没有注意到一点:method方法好像没有了~

测试效果:


接下来就是注册页面向登录页面的跳转了~

3.页面跳转

需要在注册页面加上一行代码:

<form action="user!register.action">
默认使用的是第三种方法配置Action

还需要在UserAction添加一个register方法,代码如下:

	public String register(){
		return "login";
	}

效果如图:


有时候我们注册成功的时候回向后台传值回去~,也可以向前台传值,传到登录页面

4.向前台传值-比如要返回个注册成功的信息,这个就用到了--同名参数

同名参数我会在后面介绍~

只需要在登录页面的jsp写上一行代码:

 <h4 style="color: red">${msg }</h4>
然后还要在UserAction的register方法改动一下:

	public String register(){
		//接收参数
		msg="注册成功";
		return "login";
	}
运行一下,效果如图:


5.向后台传值-得到注册成功的用户名信息,在服务器端得到值~这里也用到了同名参数

只需要在UserAction写下以下代码:

        private String name;
	private String password;
	private Integer age;
	private Boolean gender;
        public String register(){
		//接收参数
		User user=new User(null, name, age, gender, password);
		System.out.println(user);
		msg="注册成功";
		return "login";
	}
        public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}
	
	public Boolean getGender() {
		return gender;
	}
	public void setGender(Boolean gender) {
		this.gender = gender;
	}
这个是可以接收到input里面的key-value值的

运行效果如图:



其实也可以同时向后台和前台传值,只是需要把代码稍微改一下~

6.同时向后台和前台传值--这里用到了域模型~

域模型我会在后面的文章重新写一遍的~

login.jsp就只是需要改动一行代码:

 <h4 style="color: red">${msg }欢迎您:${user.name }</h4> 
register.jsp改动form表单:

 <form action="user!register.action">
            用户名:<input type="text" name="user.name"/><br>
            密码:<input type="password" name="user.password"/><br>
            确认密码:<input type="password" name="repassword"/><br>
            性别:<input type="radio" name="user.gender" value="true" checked="checked">男
            <input type="radio" name="user.gender" value="false">女
            <br>
            年龄:<select name="user.age">
              <option value="">请选择</option>
				<%
					for(int i=10;i<=30;i++){
				%>
				<option value="<%=i %>"><%=i %>周岁</option>
				<%
					}
				%>
            </select>
            <br>
            <input type="submit" value="注册">
     </form>
UserAction里:

	//域模型
	private User user;
	public String register(){
		//接收参数
		//User user=new User(null, name, age, gender, password);
		System.out.println(user);
		msg="注册成功";
		return "login";
	}
效果图:




核心代码:

UserAction:

package com.xu.struts2.web.action;

import com.xu.struts2.bean.User;

public class UserAction {

	/*//前台--》后台传值 同名参数接收 input
	private String name;
	private String password;
	private Integer age;
	private Boolean gender;*/
	
	//后台--》前台传值
	private String msg;
	
	//域模型
	private User user;
	
	public String toLogin(){
		System.out.println("跳转到登录页面");
		return "login";
	}
	
	public String toRegister(){
		System.out.println("跳转到注册页面");
		
		return "register";
	}
	public String register(){
		//接收参数
		//User user=new User(null, name, age, gender, password);
		System.out.println(user);
		msg="注册成功";
		return "login";
	}
	
	public String toIndex(){
		System.out.println("跳转到首页");
		return "index";
	}

/*	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}
	
	public Boolean getGender() {
		return gender;
	}
	public void setGender(Boolean gender) {
		this.gender = gender;
	}*/
	
	

	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}

	
	public String getMsg() {
		return msg;
	}

	public void setMsg(String msg) {
		this.msg = msg;
	}
	
}

struts.xml:

<?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>
    <constant name="struts.enable.DynamicMethodInvocation" value="true" />
    <constant name="struts.devMode" value="true" />
    <constant name="" value=""></constant>

    <package name="default" namespace="/" extends="struts-default">
    	<!--http://localhost:9999/Struts2/user_toLogin.action  -->
    	<!-- 1. -->
		<action name="user_*" 
			class="com.xu.struts2.web.action.UserAction"
			method="{1}">
			<result name="login">/WEB-INF/jsp/login.jsp</result>
			<result name="register">/WEB-INF/jsp/register.jsp</result>
			<result name="index">/WEB-INF/jsp/index.jsp</result>
		</action>
		<!-- 2. -->
		<action name="toLogin"
		    class="com.xu.struts2.web.action.UserAction"
		    method="toLogin">
		    <result name="login">/WEB-INF/jsp/login.jsp</result>
		</action> 
		<!-- 3. -->
		<!-- user!toLogin.action -->
		<action name="user"
		    class="com.xu.struts2.web.action.UserAction">
		    <result name="login">/WEB-INF/jsp/login.jsp</result>
			<result name="register">/WEB-INF/jsp/register.jsp</result>
			<result name="index">/WEB-INF/jsp/index.jsp</result>
		</action>
    </package>
    <!-- <include file="example.xml"/> -->
</struts>

register.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>注册页面</title>
</head>
<body>
     <h3>注册页面</h3>
     <hr>
     <%-- <form action="user!register.action">
            用户名:<input type="text" name="name"/><br>
            密码:<input type="password" name="password"/><br>
            确认密码:<input type="password" name="repassword"/><br>
            性别:<input type="radio" name="gender" value="true" checked="checked">男
            <input type="radio" name="gender" value="false">女
            <br>
            年龄:<select name="age">
              <option value="">请选择</option>
				<%
					for(int i=10;i<=30;i++){
				%>
				<option value="<%=i %>"><%=i %>周岁</option>
				<%
					}
				%>
            </select>
            <br>
            <input type="submit" value="注册">
     </form>  --%>
     
      <form action="user!register.action">
            用户名:<input type="text" name="user.name"/><br>
            密码:<input type="password" name="user.password"/><br>
            确认密码:<input type="password" name="repassword"/><br>
            性别:<input type="radio" name="user.gender" value="true" checked="checked">男
            <input type="radio" name="user.gender" value="false">女
            <br>
            年龄:<select name="user.age">
              <option value="">请选择</option>
				<%
					for(int i=10;i<=30;i++){
				%>
				<option value="<%=i %>"><%=i %>周岁</option>
				<%
					}
				%>
            </select>
            <br>
            <input type="submit" value="注册">
     </form>
</body>
</html>
login.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>登录页面</title>
</head>
<body>
      <h4 style="color: red">${msg }欢迎您:${user.name }</h4> 
     <%--  <h4 style="color: red">${msg }</h4>  --%>
     <h3>登录页面</h3>
     <hr>
     <form action="LoginServlet">
        用户名:<input type="text" name="name"/><br>
        密码:<input type="password" name="password"/><br>
        <input type="submit" value="登录">
     </form>
</body>
</html><
好了,今天我学习的就这么多,有什么不懂的可以问我~

其实我也是渣渣~


  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值