日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

struts实战--添加功能(重点文件上传)

發布時間:2025/3/20 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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;
?? ??? ??? ?private String uploadFileName;

?? ??? ??? ?
?? ??? ??? ?添加的用戶信息,除了上傳文件的信息,其它的都封裝到了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;}

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的struts实战--添加功能(重点文件上传)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。