内容简介:struts实战--添加功能(重点文件上传)
struts实现添加功能(重点上传)
一.对add.jsp页面上html标签修改----struts2的表单标签
1.性别
原标签
<input type="radio" name="sex" id="sex男" value="男"/><label for="sex男">男</label>
<input type="radio" name="sex" id="sex女" value="女"/><label for="sex女">女</label>
struts2标签:
<s:radio list="{'男','女'}" name="sex" id="sex" value="%{'男'}"/>
2.学历
原标签:
<select name="education" id="education">
<option value=""
selected="selected"
>--选择学历--</option>
<option value="博士">博士</option>
<option value="硕士">硕士</option>
<option value="研究生">研究生</option>
<option value="本科">本科</option>
<option value="专科">专科</option>
<option value="高中">高中</option>
</select>
struts2标签
<s:select list="{'博士','硕士','研究生','本科','专科','高中'}" name="education" id="education" headerKey="" headerValue="--选择学历--"></s:select>
3.兴趣爱好
<s:checkboxlist list="{'看电影','旅游','健身','购物','睡觉'}" name="interest"/>
4.上传
<s:file name="upload" size="30" value="" id="userAction_save_do_upload"/>
5.文本域
<s:textarea name="remark" cols="30" rows="3" id="userAction_save_do_remark" cssStyle="WIDTH: 96%"/>
添加页面:
<%@ page language="java" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<HTML>
<HEAD>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<LINK href="${pageContext.request.contextPath}/css/Style.css" type="text/css" rel="stylesheet">
<script language="javascript" src="${pageContext.request.contextPath}/js/public.js"></script>
<script language="javascript" src="${pageContext.request.contextPath}/js/check.js"></script>
<!-- 日期插件,使用jquery -->
<script type="text/javascript" src="${pageContext.request.contextPath}/jquery/jquery-1.4.2.js"></script>
<link rel="stylesheet" href="${pageContext.request.contextPath}/jquery/jquery.datepick.css" type="text/css">
<script type="text/javascript" src="${pageContext.request.contextPath}/jquery/jquery.datepick.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/jquery/jquery.datepick-zh-CN.js"></script>
</HEAD>
<script type="text/javascript">
$(document).ready(function(){
//使用class属性处理 'yy-mm-dd' 设置格式"yyyy/mm/dd"
$('#birthday').datepick({dateFormat: 'yy-mm-dd'});
});
</script>
<body>
<s:form action="user_add" namespace="/" method="post" theme="simple" enctype="multipart/form-data" id="userAction_save_do" name="Form1">
<table cellSpacing="1" cellPadding="5" width="100%" align="center" bgColor="#eeeeee" style="border: 1px solid #8ba7e3" border="0">
<tr>
<td class="ta_01" align="center" bgColor="#afd1f3" colSpan="4"
height="26">
<strong><STRONG>添加用户</STRONG>
</strong>
<s:fielderror />
<s:debug/>
</td>
</tr>
<tr>
<td width="18%" align="center" bgColor="#f5fafe" class="ta_01">
登录名:
</td>
<td class="ta_01" bgColor="#ffffff" colspan="3">
<s:textfield name="logonName" id="userAction_save_do_logonName" cssClass="bg"/>
</td>
</tr>
<tr>
<td align="center" bgColor="#f5fafe" class="ta_01">
密码:
</td>
<td class="ta_01" bgColor="#ffffff">
<s:password name="logonPwd" id="logonPwd"/>
</td>
<td align="center" bgColor="#f5fafe" class="ta_01">
用户姓名:
</td>
<td class="ta_01" bgColor="#ffffff">
<s:textfield name="userName" id="userAction_save_do_userName" class="bg"/>
</td>
</tr>
<tr>
<td align="center" bgColor="#f5fafe" class="ta_01">
性别:
</td>
<td class="ta_01" bgColor="#ffffff">
<s:radio list="{'男','女'}" name="sex" ></s:radio>
</td>
<td align="center" bgColor="#f5fafe" class="ta_01">
学历:
</td>
<td class="ta_01" bgColor="#ffffff">
<!-- headkey 就是 value属性,headValue 看到的内容,生成select元素第一个option -->
<s:select list="{'博士','硕士','研究生','本科','专科','高中'}" name="education" id="education" headerKey="" headerValue="--选择学历--"></s:select>
</td>
</tr>
<tr>
<td align="center" bgColor="#f5fafe" class="ta_01">
出生日期:
</td>
<td class="ta_01" bgColor="#ffffff">
<s:textfield name="birthday" size="20" readonly="true" id="birthday"></s:textfield>
</td>
<td align="center" bgColor="#f5fafe" class="ta_01">
电话:
</td>
<td class="ta_01" bgColor="#ffffff">
<s:textfield name="telephone" id="telephone"></s:textfield>
</td>
</tr>
<tr>
<td align="center" bgColor="#f5fafe" class="ta_01">
兴趣爱好:
</td>
<td class="ta_01" bgColor="#ffffff" colSpan="3">
<s:checkboxlist list="{'看电影','旅游','健身','购物','睡觉'}" name="interest" value="%{interest.split(', ')}"></s:checkboxlist>
</td>
</tr>
<tr>
<td align="center" bgColor="#f5fafe" class="ta_01">
简历资料:
</td>
<td class="ta_01" bgColor="#ffffff" colSpan="3">
<s:file name="upload" size="30" id="userAction_save_do_upload"/>
</td>
</tr>
<TR>
<TD class="ta_01" align="center" bgColor="#f5fafe">
备注:
</TD>
<TD class="ta_01" bgColor="#ffffff" colSpan="3">
<s:textarea name="remark" cols="30" rows="3" id="userAction_save_do_remark" cssStyle="WIDTH: 96%"></s:textarea>
</TD>
</TR>
<TR>
<td align="center" colSpan="4" class="sep1">
<img src="${pageContext.request.contextPath}/images/shim.gif">
</td>
</TR>
<tr>
<td class="ta_01" style="WIDTH: 100%" align="center"
bgColor="#f5fafe" colSpan="4">
<button type="submit" id="userAction_save_do_submit" name="submit" value="确定" class="button_ok">
确定
</button>
<FONT face="宋体"> </FONT>
<button type="reset" value="重置" class="button_cancel">重置</button>
<FONT face="宋体"> </FONT>
<INPUT class="button_ok" type="button" onclick="history.go(-1)" value="返回"/>
<span id="Label1"></span>
</td>
</tr>
</table>
</s:form>
</body>
</HTML>
二.添加数据的校验
在UserAction类所在包下创建一个 UserAction-user_add-validation.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> <validators> <field name="logonName"> <field-validator type="requiredstring"> <message key="logonName.required"></message> </field-validator> <field-validator type="stringlength"> <param name="minLength">3</param> <param name="maxLength">12</param> <message key="logonName.length"></message> </field-validator> </field> <field name="logonPwd"> <field-validator type="requiredstring"> <message key="logonPwd.required"></message> </field-validator> </field> <field name="userName"> <field-validator type="requiredstring"> <message key="userName.required"></message> </field-validator> </field> </validators>
三.完成添加操作(上传)
在UserAction类中需要有一个 private User user=new User();
我们又声明了
private File upload;
private String uploadContentType;
添加的用户信息,除了上传文件的信息,其它的都封装到了user对象中。
而上传文件信息在三个属性上封装。
对于我们添加用户还需要有下列信息:
userID----->自动增长
path------->人为指定。
简历不允许被浏览器端直接访问。
d:/upload下.
上传简历,保存时的重名问题.
d:/upload/随机名.
filename=真实名
对于我们上面操作,因为多个action在同一个配置中(使用了通配符).
多个请求操作时,可能都需要跳转到input视图。但是它们跳转的页面
不一样,怎样处理?
可以 通过 @InputConfig注解,改为校验失败后 跳转视图
action逻辑:
/**
* 员工添加
*
* @return
* @throws IOException
*/
@InputConfig(resultName = "addINPUT")
public String add() throws IOException {
// 上传简历
if (upload != null) {
String uuidName = UUID.randomUUID().toString();
String path = "/WEB-INF/upload/" + uuidName;
File destFile = new File(ServletActionContext.getServletContext()
.getRealPath(path));
FileUtils.copyFile(upload, destFile);
// 接收员工数据
// 在user 保存 uuid文件路径 和 真实文件名
user.setPath(path);
user.setFilename(uploadFileName);
}
UserService userService = new UserService();
userService.add(user);
return "addSUCCESS";
}
private File upload;
private String uploadContentType;
private String uploadFileName; // 真实文件名
public void setUpload(File upload) {
this.upload = upload;
}
public void setUploadContentType(String uploadContentType) {
this.uploadContentType = uploadContentType;
}
public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}
以上所述就是小编给大家介绍的《struts实战--添加功能(重点文件上传)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Flutter 实战之从 0 搭建「网易云音乐」App(一):创建项目、添加插件、通用代码
- 主动模式和被动模式,添加监控主机,添加自定义模板,处理图像中的乱码,自动发现
- 苹果将为 Mac 添加 Face ID,为 Magic Keyboard 添加 Touch Bar
- android – 为什么AOSP添加新的API来支持库而不添加到SDK?
- [Framework] 添加系统服务
- go imports添加
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Unity Shader入门精要
冯乐乐 / 人民邮电出版社 / 2016-5-1 / CNY 69.00
本书不仅要教会读者如何使用Unity Shader,更重要的是要帮助读者学习Unity中的一些渲染机制以及如何使用Unity Shader实现各种自定义的渲染效果,希望这本书可以为读者打开一扇新的大门,让读者离制作心目中杰出游戏的心愿更近一步。 本书的主要内容为:第1章讲解了学习Unity Shader应该从哪里着手;第2章讲解了现代GPU是如何实现整个渲染流水线的,这对理解Shader的工......一起来看看 《Unity Shader入门精要》 这本书的介绍吧!