struts开发入门

Struts2的下载和安装

  • 去下载Struts2 最新版
  • struts2目录结构【开发时没必要将lib目录下jar文件全部复制到项目中
  1. apps 该文件夹包含了基于struts2 的示例应用,这些示例应用对于学习者是非常有用的
  2. docs 该文件夹下包含了struts2 相关文档,包括struts2 快速入门、struts2的文档以及API文档等
  3. lib 该文件夹下包含了Struts2框架和核心类库,以及struts2第三方插件类库
  4. src 该文件夹下包含了Struts2框架的全部源代码

Struts2的入门理论

在这里插入图片描述

第一个Struts2应用入门

  1. 创建WEB工程
  2. 导入必要jar包
    a.将apps\struts2-blank-2.1.8.1\WEB-INF\lib下所有 jar复制到项目的 lib目录下
  3. 编写jsp页面
  4. 编写Action服务器端处理逻辑
  5. 进行框架配置web.xml、struts.xml
  6. 运行测试

IDEA中搭建【Struts】项目

1.点击Create New Project
2.勾选struts配置
在这里插入图片描述3.项目命名,点击Finish
在这里插入图片描述
4.在WEB-INF中新建目录lib,将之前下载的struts2必备的包放入该目录
集成library–lib目录选择全部的jar包,右击选择Add as Library填struts2

5.自动生成web.xml配置改成如下:
在这里插入图片描述6.当strut.xml extend="struts-default"报错时,添加就行了如下
在这里插入图片描述在这里插入图片描述

编写类

1.继承接口【com.opensymphony.xwork2.ActionSupport】 实现模型驱动接口
在这里插入图片描述
2.格式

public String 函数名{
return 结果字符串
}
默认执行excute方法
在这里插入图片描述
在这里插入图片描述实体类一定要生成set方法,set接收参数

使用通配符配置Action

在这里插入图片描述

全局结果视图

在这里插入图片描述

result元素的配置

在这里插入图片描述

页面标签引用

EL表达式 :${表达式}
OGNL表达式: 在jsp页面为不和EL冲突 %{表达式} 在OGNL标签的value属性中可以不写
OGNL表达式只能在 OGNL标签中使用

<%@taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>

  <tr>
    <td width="22">学号</td>
    <td width="22">名字</td>
    <td width="22">年龄</td>
    <td width="16">性别</td>
    <td width="41">出生日期</td>
    <td width="37">所属班级</td>
  </tr>
  <c:forEach items="${list}"  var="s">
   <tr>
    <td>${s.stuId }</td>
    <td>${s.stuName}</td>
    <td>${s.age}</td>
    <td>${s.sex==true?"女":"男" }</td>
    <td>${s.birthday }</td>
    <td>${s.className}</td>
  </tr>
  </c:forEach>

验证错误回显

1.基于XML配置方式实现
在这里插入图片描述

在这里插入图片描述
此时对应页面回显错误信息则只要直接取得S标签
在这里插入图片描述xml配置中的一些简单验证

在这里插入图片描述

2.采用手工编写代码实现

//action类
//全局验证 对象里所有方法都验证
public void validate(){
	System.out.println("全局");
	if(user.getUsername()==null || user.getUsername().trim().equals("")){
		//像存放错误的容器中存放错误容器
		this.addFieldError("nameError","用户名为空");
	}
	if(user.getPassword()==null || user.getPassword().trim().equals("")){
		this.addFieldErroe("pwdError","密码不能为空");
	}
}
//局部验证
public void validateLogin(){
	System.out.println("局部");
	if(user.getUsername()==null || user.getUsername().trim().equals("")){
		//像存放错误的容器中存放错误容器
		this.addFieldError("nameError","用户名为空");
	}
	if(user.getPassword()==null || user.getPassword().trim().equals("")){
		this.addFieldErroe("pwdError","密码不能为空");
	}
}

此验证对应页面取错误信息

//jsp页面
<!-- 导入struts 标签库 -->此时用到S标签取得错误信息
<%@taglib uri="/struts-tags" prefix="s" %>
<form action="user_login.action"  onsubmit="return checkForm()" >
         用户名<input  type="text"  name="username" /> 			 	  
         <s:fielderror fieldName="nameError"></s:fielderror><br/>
         密码<input  type="password"  name="pwd"  id="pwd"/>
         <s:fielderror fieldName="pwdError"></s:fielderror><br/>
         <input type="submit"  value="登录" />
</form>

关于文件上传

1.文件上传概述
在这里插入图片描述2.文件上传
在这里插入图片描述例:

//jsp页面
<form action = "" method="post" enctype="multipart/form-data">
	<input type="file" name="pic" />
	<input type="submit" value="上传"/>
</form>
//action文件上传代码
public class UpAction extendsActionSupport{
	//使用第一接受数据方式	得到	上传的文件
	private File pic;
	//文件名称	固定写法		pic+FileName
	private String picFileName;
	//得到文件mine类型
	private String picContentType;
	
	//生成get、set方法
	public String addUI(){
		return "addUI";
	}
	public String add(){
		System.out.println(picFileName);
		String houZ = picFileName.subString(picFileName.lastIndexOf("."),picFileName.length());
		//服务器上保存图片的真实	五里路径
		String destFile = ServletActionContext.getServletContext().getRealPath("/image");
		//创建文件对象	将上传的图片复制
		File destFile = new File(realPath+"/"+Syetem.currentTimeMillis()+houZ);
		//保存文件
		try{
			FileUtils.copyFile(pic,destFile);
		}catch(IOException e){
			e.printStackTrace();
		}
		System.out.println(realPath);
		return null;
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值