Struts2学习总结

Struts2学习总结

学东西忘的太快了,不写博客就全忘光了 qaq

一. 首先创建一个web项目,并且导入jar包

Struts2依赖的环境

二. 配置web.xml

需要配置过滤器标签 filter 和 filter-mapping

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>Structs_Demo1</display-name>
  	<filter>
		<filter-name>struts2</filter-name>
		<!-- 这个类从包struts2-core-2.3.16.3.jar的环境中寻找 -->
		<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-app>

三. 进行struts.xml的配置

先放代码,需要配置的东西很多

这里只记录经常我用到的
更详细的配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
	<constant name="struts.devMode" value="true" />        <!-- 设置了程序的运行模式 -->
	<constant name="struts.locale" value="zh_CN" />         <!-- 设置程序运行所使用的locale -->
	<constant name="struts.i18n.encoding" value="utf-8" />  <!-- 设置程序运行时用的编码方式 -->
	<!-- 正确设置后面两个参数,就可以解决Struts2的中文问题了。 -->
	
	<package name="s1" extends="struts-default" namespace="/s1">
	<!-- 设置全局跳转  -->
		<global-results>
			<result name="error">/error.jsp</result>
		</global-results>
	<!-- action可以被多次映射,只要name不一样 -->
	<!-- method属性是action类中的方法名 -->
		<action name="baseAction" method="excute1" class="com.lty.action.baseAction">
			<result name="success" type="">/index.jsp</result>
			<result name="fail" type="">/fail.jsp</result>
		</action>
	</package>
</struts>

1.首先是struts标签

  • struts内写package标签,而且可以写很多个

2.package标签

  • package标签中的name是唯一属性,将多个action组织成一个模块;
  • 属性namespace 是指工作空间,如果加了namespace属性,域名中需要加入/s1;

3.action标签

  • name属性也是唯一的,而且与jsp页面表单内的action属性相对应;
  • method属性是action控制器中方法的名称,action中需要继承ActionSupport类;
  • class属性中是action控制器的类的位置 例如 :com.lty.action.baseAction;

4.result标签

  • name属性表示控制器内的方法的返回字符串,例如图中的success和fail
    在这里插入图片描述
  • 注意跳转jsp页面需要加 /
  • type属性是跳转方式

    1.action -> jsp (内部分发跳转,默认跳转方式)
    在这里插入图片描述
    2.action -> jsp (重定向跳转)
    在这里插入图片描述
    3.action -> action (内部分发跳转)
    在这里插入图片描述
    4.action -> action (重定向跳转)
    在这里插入图片描述

四.开发控制器

创建一个类

1.实现action接口

需要完善excute方法

2.继承ActionSupport方法

自定义方法,返回值为String即可
但是需要在struts.xml中进行配置

五.action获取jsp页面参数

通过定义成员变量法
控制器:

package com.lty.action;

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Map;
import java.util.Set;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.lty.bean.User;
import com.lty.service.userService;
import com.lty.service.userServiceImpl;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class baseAction extends ActionSupport{

	public User user = new User();
	public User getUser(){
		return user;
	}
	public void setUser(){
		this.user = user;
	}
	public String excute1(){
		userService us = new userServiceImpl();
		ActionContext ac = ActionContext.getContext();
		String name = user.getName();
		String password = user.getPassword();
		if(us.isLogin(name,password))
			return "success";
		else
			return "fail";
	}
}

jsp页面:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  <body>
    <form action="<%=request.getContextPath()%>/baseAction" method="post">
    	姓名:<input type="text" name = "user.name"><br>
    	密码:<input type="password" name = "user.password"><br>
    	<input type="submit" value="提交"> <br>
    </form>
  </body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值