【永恒的瞬間】
          ?Give me hapy ?

          jsp頁面:

          <%@ page contentType="text/html; charset=utf-8" %>
          <%@include file="/common.jsp"%>
          <html>
          <head>
          <title>
          testArr
          </title>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>
          <body bgcolor="#ffffff">
          <html:form action="/testArr.do"? enctype="multipart/form-data">
          <input type="hidden" name="fileUpLoadNumberRow" id="fileUpLoadNumberRow" value="1">
          ?<table? <%=tableStyle%> id="testArr">
          ?<tr? class="ListTableHeader" >
          ???? <td width="13%"? align="center"><b>操作</b></td>
          ???? <td width="33%"? align="center"><b>文件描述</b></td>
          ? <td width="54%"? align="center"><b>源文件</b></td>
          ?</tr>
          ?<tr? class="ListTableRow" >
          ???? <td width="13%"> <input type="button" name="Submit" value="刪除" class="Button4"? onclick="delCode(1)"></td>
          ???? <td width="33%"? align="center"><b><input type="hidden" name="fileUpLoadHiddenIDNewObject1" value="" id="fileUpLoadHiddenIDNewObject1"><input type="text" name="fileTitle1" <%=input100Change%> id="fileTitle1"></b></td>
          ? <td width="54%"? align="center"><b><input type="file" name="filePath1"? <%=input100%> id="filePath1"? onchange="showFileChange(1,'filePath','fileUpLoadHiddenIDNewObject','fileTitle')"></b></td>
          ?</tr>
          ?<tr? class="ListTableRow" >
          ???? <td width="100%" colspan="3" ><input type="submit" name="Submit" value="提交" class="Button4">
          ???? <input type="button" name="Submit" value="新增附件" class="Button4"? onclick="addCode()">
          ??? </td>
          ?</tr>
          ?</table>
          </html:form>
          <script language="javascript" type="text/javascript">
          String.prototype.trim = function()
          {
          ??? return this.replace(/(^[\s]*)|([\s]*$)/g, "");
          }
          function addCode(){
          ? var objTable=document.all("testArr");
          ? var objTableLength=objTable.rows.length
          ? var objChild=document.all("fileUpLoadNumberRow");
          ? objChild.value=parseInt(objChild.value,10)+1;
          ? var myrow=objTable.insertRow(objTableLength-1);
          ? var mycell=myrow.insertCell();
          ? mycell.innerHTML="<input type='button' name='Submit' value='刪除' class='Button4' onClick='delCode("+(objTableLength-2+1)+")'>";

          ? mycell=myrow.insertCell();
          ? mycell.innerHTML="<input type='hidden' name='fileUpLoadHiddenIDNewObject"+objChild.value+"'? id='fileUpLoadHiddenIDNewObject"+objChild.value+"'><input type='text' name='fileTitle"+objChild.value+"' <%=input100Change%> id='fileTitle"+objChild.value+"'? value='' trim='true' dataType='Require'? msg='文件描述不能為空!'>";
          ? mycell=myrow.insertCell();
          ? var html=""
          ? html=html+"<input type='file' name='filePath"+objChild.value+"' <%=input100%> id='filePath"+objChild.value+"' onChange=showFileChange("+objChild.value+",'filePath','fileUpLoadHiddenIDNewObject','fileTitle')>";
          ? mycell.innerHTML=html

          }
          function delCode(rowNum)
          {
          ? var objTable=document.all("testArr");
          ? if(window.confirm("真的要刪除所選項!"))
          ? {
          ???????? objTable.deleteRow(rowNum);
          ? }
          ? for(var i=1;i<objTable.rows.length-1;i++)
          ? {

          ???????? objTable.rows(i).cells(0).innerHTML="<input type='button' name='Submit' value='刪除' class='Button4' onClick='delCode("+i+")'>";

          ? }

          }
          function changeButtomHtml()
          {

          }

          </script>
          </body>
          </html>

          ?

          common.jsp???? 不要的代碼請去除

          <!--引入系統中要用的標簽-->

          <%@taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
          <%@taglib uri="/WEB-INF/fireeagle.tld" prefix="fireeagle"%>
          <!--引入系統中要用的類-->
          <%@page import="java.util.*"%>
          <%@page import="com.ytstm.frame.IConstants"%>
          <%@page import="com.ytstm.util.*"%>

          <%
          ? String baseURL = request.getContextPath();????? //得到當前發布的根路經
          ? Object objectRes=request.getAttribute("org.apache.struts.action.MESSAGE");? //得到struts當前配置的資源文件
          ? org.apache.struts.util.MessageResources resources =(org.apache.struts.util.MessageResources)objectRes;
          ? String exitPro="";?????????????????????? //當頁面處在修改狀態時的提示語
          ? String pageNum_fireeagle="";???????????? //翻頁時當輸入的不是數字時的提示語
          ? if(resources!=null)
          ?{
          ? exitPro= resources.getMessage("exitPro");
          ? pageNum_fireeagle=resources.getMessage("pageNum");
          ?}

          %>
          <script language="javascript" type="text/javascript">
          ? var baseURL='<%=baseURL%>';??????? //得到當前發布的根路經
          ? var editModel_fireeagle=false;???? //用戶操作的當前頁面的狀態. true以修改數據,false沒有修改數據
          ? var exitPro='<%=exitPro%>'???????? //當頁面處在修改狀態時的提示語
          ? var pageNum_fireeagle='<%=pageNum_fireeagle%>'?? //翻頁時當輸入的不是數字時的提示語
          ?</script>
          <%
          ? //tableStyle? 表格的樣式,可以減少頁面的html代碼量
          ? String tableStyle="width=\"100%\"? border=\"1\" cellSpacing=\"0\" cellpadding=\"3\"?? bordercolorlight=\"#E2D7CF\" bordercolordark=\"#FAF8F6\"";
          ? String frame = baseURL + "/frame"; //框架模塊的前綴
          ? String project = baseURL + "/project";//項目立項模塊的前綴
          ? String contract = baseURL + "/contract";//合同模塊的前綴
          ? String process = baseURL + "/process";//過程模塊的前綴

          ? //input 的樣式和鍵盤按下事件,它會轉入到下一個可輸入控件,可以減少頁面的html代碼量
          ? String input="class='formStyleall' onKeyDown='next_focus(this)' onChange='changeEditModel()'";
          ? String input4="class='formStyleall' size='4' onKeyDown='next_focus(this)' onChange='changeEditModel()'";
          ?? String input10="class='formStyleall' size='12' onKeyDown='next_focus(this)' onChange='changeEditModel()'";
          ? String input12="class='formStyleall' size='12' onKeyDown='next_focus(this)' onChange='changeEditModel()'";
          ? String input15="class='formStyleall' size='15' onKeyDown='next_focus(this)' onChange='changeEditModel()'";
          ? String input20="class='formStyleall' size='20' onKeyDown='next_focus(this)' onChange='changeEditModel()'";
          ? String input25="class='formStyleall' size='25' onKeyDown='next_focus(this)' onChange='changeEditModel()'";
          ? String input30="class='formStyleall' size='30' onKeyDown='next_focus(this)' onChange='changeEditModel()'";
          ? String input35="class='formStyleall' size='35' onKeyDown='next_focus(this)' onChange='changeEditModel()'";
          ? String input40="class='formStyleall' size='40' onKeyDown='next_focus(this)' onChange='changeEditModel()'";
          ? String input50="class='formStyleall' size='50' onKeyDown='next_focus(this)' onChange='changeEditModel()'";
          ? String input60="class='formStyleall' size='60' onKeyDown='next_focus(this)' onChange='changeEditModel()'";
          ?? String input100="class='formStyleall' style='width=100%' onKeyDown='next_focus(this)'";
          ?? String input100Change="class='formStyleall' style='width=100%' onKeyDown='next_focus(this)' onChange='changeEditModel()'";

          ? //onchange事件的全局變量,這個方法用于修改用戶操作的當前頁面的狀態.
          ? String onChange="onChange='changeEditModel()'";
          ? String changeName="'changeEditModel()'";
          ? //給色*號標示.和()標示,可以減少頁面的html代碼量
          ? String red="&nbsp;&nbsp;<font color='red'><b>*</b></font>";
          ? String redLeft="<font color='#FF0000'>(</font>";
          ? String redRight="<font color='#FF0000'>)</font>";
          ? String orderTitle="style='cursor:hand'? align='center'";
          ? //查看,新增,修改.用在聯接?后面
          ? String modifyView=IConstants.FRAME_MODIFY_FLAG+"="+IConstants.FRAME_MODIFY_FLAG_VIEW;
          ? String modifyAdd=IConstants.FRAME_MODIFY_FLAG+"="+IConstants.FRAME_MODIFY_FLAG_ADD;
          ? String modifyEdit=IConstants.FRAME_MODIFY_FLAG+"="+IConstants.FRAME_MODIFY_FLAG_EDIT;

          ? //頁面退出是要執行的方法,當用戶修改了頁面內容后退出頁面時,要給提示信息給用戶
          ? String onbeforeunload ="onbeforeunload='javacript:return(isClose())'";
          ? //屏蔽頁面的右鍵功能
          // String disableCopy="ondragstart=self.event.returnValue=true onselectstart=self.event.returnValue=true oncontextmenu=self.event.returnValue=false";
          String disableCopy="";
          %>
          <!--引入公用的js代碼-->
          <script type="text/javascript" src="<%=baseURL%>/js/public.js"></script>
          <!--引入公驗證的js代碼-->
          <script type="text/javascript" src="<%=baseURL%>/js/validator.js"></script>
          <script type="text/javascript" src="<%=baseURL%>/js/sorttable/sortabletable.js"></script>
          <script type="text/javascript" src="<%=baseURL%>/js/selectdate1.js"></script>
          <link href="<%=baseURL%>/css/main.css" rel="stylesheet" type="text/css">
          <!--有錯誤信息和提示信息時層要顯示的位置-->
          <style type="text/css">
          <!--
          ?#errorDiv {
          ?position: absolute;
          ?left: 20%;
          ?top: 20%;
          ?width: 352px;
          ?height: 21px;
          ?background-color: #FFFFFF;
          ?}
          -->
          </style>

          ?

          publlic.js?? 不要的代碼請去除

          ?


          function next_focus(text)
          {
          ?if(window.event.keyCode ==13)
          ?{
          ??window.event.keyCode=9;
          ?}
          }


          function mouseovertd (o)
          {
          ?o.style.color='#ffffff';
          ?o.style.backgroundColor='#B3B3B3';

          }
          function mouseouttd (o)
          {
          ?o.style.color='#000000';
          ?o.style.backgroundColor='';

          }

          ?

          function goPage(flag,currPage,formId,formAction,formTarget,formMethod,pageNumId)
          {
          ? var formObj=document.all(formId)
          ? ?formObj.target=formTarget;
          ?formObj.method=formMethod;
          ?if(flag=='go')
          ?{
          ??var obj=document.all(pageNumId)
          ?? if(isNaN(obj.value))
          ??? ?{
          ???? ? alert(pageNum_fireeagle);
          ???????? obj.select();
          ????? ?? return;
          ??? ?}
          ??else
          ??{
          ???currPage=obj.value
          ??}
          ?}

          ?pageMethod="pageMethod="+flag+"&currentPage="+currPage;
          ?formAction=formAction+"&"+pageMethod;
          ?formObj.action=formAction;
          ??????? top.bottom.document.all("process").innerHTML="<img name='pro' src='"+baseURL+"/images/public/process.gif' border='0'>";
          ?formObj.submit();
          }
          function submitForm(formId,submitbutton)
          {
          ? editModel_fireeagle=false;
          ?submitbutton.disabled=true
          ? var objForm =document.all(formId);
          ?? if(Validator.Validate(objForm,2))
          ?? {
          ??? top.bottom.document.all("process").innerHTML="<img name='pro' src='"+baseURL+"/images/public/process.gif' border='0'>";
          ??? objForm.submit();
          ?? }
          ?? else
          ?? {
          ??????? submitbutton.disabled=false
          ?? }
          }
          function delOnClick(url,target)
          {

          ?? if(window.confirm("確定刪除!"))
          ?? {
          ????? top.bottom.document.all("process").innerHTML="<img name='pro' src='"+baseURL+"/images/public/process.gif' border='0'>"
          ???? if(target=='parent')
          ???? {
          ???? parent.location.href=url
          ???? }else if(target=='self')
          ???? {
          ???? location.href=url
          ???? }
          ?? }
          }
          function submitFormQuery(formId,queryFlag)
          {

          ? var objForm =document.all(formId);
          ? objForm.is_QUERY.value=queryFlag;
          ? top.bottom.document.all("process").innerHTML="<img name='pro' src='"+baseURL+"/images/public/process.gif' border='0'>";
          ?? objForm.submit();

          }


          function buttomOnClick(url,target)
          {
          ?? top.bottom.document.all("process").innerHTML="<img name='pro' src='"+baseURL+"/images/public/process.gif' border='0'>"
          if(target=='parent')
          ?? {
          ??? parent.location.href=url
          ?? }else if(target=='self')
          ?? {
          ????? location.href=url
          ?? }
          }

          function changeEditModel()
          {
          ? editModel_fireeagle=true
          }

          function isClose()
          {
          if(editModel_fireeagle)
          ? {
          ??? top.bottom.document.all("process").innerHTML="<img name='pro' src='"+baseURL+"/images/public/prosessEnd.gif' border='0'>"
          ? return exitPro
          ? }
          }

          //只能輸入數字
          //頁面使用:<input type=text name=test value="" onKeypress="JHshNumberText()">
          function JHshNumberText()
          {
          ? if ( !(((window.event.keyCode >= 48) && (window.event.keyCode <= 57))
          ? || (window.event.keyCode == 13) || (window.event.keyCode == 46)
          ? || (window.event.keyCode == 45)))
          ? {
          ??? window.event.keyCode = 0 ;
          ? }
          }

          document.onkeydown = openHelp
          function openHelp()
          {
          ?if(window.event.keyCode==113)
          ??????? {
          ????????? if(top.main.document.title.indexOf("HELP")>=0)
          ????????? {
          ??????????? showModalDialog(baseURL+"/frame/help/"+top.main.document.title);
          ????????? }
          ??????? }

          ??? if(window.event.keyCode==116)
          ??? {
          ????? event.keyCode=0;
          ????? event.returnValue=false;

          ??? }
          }
          function jtrim(sstr)?? //去掉左右空格
          {
          ? var astr="";
          ? var dstr="";
          ? var flag=0;
          ? for (i=0;i<sstr.length;i++)
          ? {if ((sstr.charAt(i)!=' ')||(flag!=0))
          ? {dstr+=sstr.charAt(i);
          ? flag=1;
          ? }
          ? }
          ? flag=0;
          ? for (i=dstr.length-1;i>=0;i--)
          ? {if ((dstr.charAt(i)!=' ')||(flag!=0))
          ? {astr+=dstr.charAt(i);
          ? flag=1;
          ? }
          ? }
          ? dstr="";
          ? for (i=astr.length-1;i>=0;i--) dstr+=astr.charAt(i);
          ? return dstr;
          }

          function popup(page,w,h){ //在窗口中央彈出窗口
          ? var width=screen.width;
          ? var height=screen.height;
          ? var arg;
          ? l=(width-w)/2;
          ? t=(height-h)/2;
          ? if (width>w && height>h) arg="top="+t+",left="+l+",";
          ? win=window.open (page,"select", arg+"height="+h+", width="+w+",toolbar=no, menubar=no, scrollbars=auto, resizable=no, location=no, status=no");
          ? return win;
          }

          function popupProject(page,w,h){ //在窗口中央彈出窗口
          ? var width=screen.width;
          ? var height=screen.height;
          ? var arg;
          ? l=(width-w)/2;
          ? t=(height-h)/2;
          ? if (width>w && height>h) arg="top="+t+",left="+l+",";
          ? win=window.open (page,"select", arg+"height="+h+", width="+w+",toolbar=no, menubar=no, scrollbars=yes, resizable=tes, location=no, status=no");
          ? return win;
          }

          var LookProjectWin=null;
          function lookProject(url)
          {
          ?LookProjectWin= popupProject(url,750,450)
          }
          function exitWindow()
          {
          ? if(LookProjectWin!=null)
          ? {
          ??? LookProjectWin.close();
          ? }
          }

          //flag? 文件標示
          //filePath? 文件路經標示
          //fileUpLoadHiddenIDNewObject 文件隱藏控件名標示
          //fileTitle 文件標題控件名標示
          function showFileChange(flag,filePath,fileUpLoadHiddenIDNewObject,fileTitle)
          {
          ? var sorFileName=document.all(filePath+flag).value
          ? var pos=sorFileName.lastIndexOf("\\");
          ? var fuleName=sorFileName.substring(pos+1);
          ? document.all(fileUpLoadHiddenIDNewObject+flag).value=fuleName
          ? var dotPos=fuleName.lastIndexOf(".");
          ? var fuleNameDot=fuleName.substring(0,dotPos);
          ? if(document.all(fileTitle+flag).value=="")
          ??? document.all(fileTitle+flag).value=fuleNameDot
          }

          struts配置

          ?<form-beans>
          ??? <form-bean name="testForm" type="com.ytstm.TestForm"/>
          ? </form-beans>

          ?<action path="/testArr" type="com.ytstm.TestArr" name="testForm">
          ????? <forward name="test" path="/testArr.jsp" />
          ??? </action>

          ?

          ?

          com.ytstm.TestForm

          package com.ytstm;

          import org.apache.struts.action.*;

          public class TestForm extends ActionForm{
          ??? public TestForm() {
          ??? }


          }

          com.ytstm.TestArr

          package com.ytstm;

          import org.apache.struts.action.ActionForward;
          import javax.servlet.http.HttpServletRequest;
          import org.apache.struts.action.ActionMapping;
          import javax.servlet.http.HttpServletResponse;
          import org.apache.struts.action.ActionForm;
          import java.util.*;
          import org.apache.struts.upload.*;
          import java.io.*;
          import com.ytstm.util.UpLoadUtil;

          public class TestArr extends org.apache.struts.action.Action{
          ??? public TestArr() {
          ??? }

          ??? public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception
          ?{
          ??????????? List returnArr=UpLoadUtil.upload(form,request,"testTable","F:/ytstm/YTSTMWeb/fileset/","fileUpLoadNumberRow","fileUpLoadHiddenIDNewObject","fileTitle");
          ??????????? if(returnArr!=null)
          ??????????? {
          ??????????????? for(int i=0;i<returnArr.size();i++)
          ??????????????? {
          ??????????????????? Map map=(Map)returnArr.get(i);
          ??????????????????? System.out.println("TABLENAME==="+map.get("TABLENAME"));
          ??????????????????? System.out.println("FILENAME==="+map.get("FILENAME"));
          ??????????????????? System.out.println("FILEPATH==="+map.get("FILEPATH"));
          ??????????????????? System.out.println("FILETYPE==="+map.get("FILETYPE"));
          ??????????????????? System.out.println("FORMERLYFILENAME==="+map.get("FORMERLYFILENAME"));
          ??????????????? }
          ??????????? }
          ??????????? return mapping.findForward("test");
          ??????? }
          }

          com.ytstm.util.UpLoadUtil

          package com.ytstm.util;

          import org.apache.struts.action.*;
          import javax.servlet.http.*;
          import java.util.*;
          import java.io.*;
          import org.apache.struts.upload.*;

          public class UpLoadUtil {
          ??? public UpLoadUtil() {
          ??? }
          ??? /**
          ???? *
          ???? * @param form ActionForm
          ???? * @param request HttpServletRequest
          ???? * @param tableName String???? 表名
          ???? * @param storePath String???? 路經
          ???? * @param fileNumControl String? 表示附件個數的頁面控件名
          ???? * @param fileNumControl String? 表示附件隱藏的頁面控件名
          ???? * @return List
          ???? * @throws IOException
          ???? */
          ??? public static List upload(ActionForm form, HttpServletRequest request,String tableName,String storePath,String fileNumControl,String hiddenIDNewObject,String fileTitle) throws
          ??????????? IOException
          ??? {
          ???????? List retList = new ArrayList(); //存放附件的信息
          ???????? Hashtable files = form.getMultipartRequestHandler().getFileElements();
          ??????? String strnumberRowNew = request.getParameter(fileNumControl);
          ??????? int intnumberRowNew = 0;
          ??????? FormFile ff[] = null;
          ??????? ff = new FormFile[files.size()];
          ??????? Enumeration fileKey = files.keys();
          ??????? int i = 0;

          ??????? while (fileKey.hasMoreElements()) {
          ??????????? String ffname = (String) fileKey.nextElement();

          ??????????? ff[i] = (FormFile) files.get(ffname);
          ??????????? i++;
          ??????? }

          ??????? for (int a = 0; a < ff.length; a++) {
          ??????????? if (ff[a] == null || ff[a].getFileSize() == 0 ||
          ??????????????? ff[a].getFileName() == null
          ??????????????? || ff[a].getFileName().equals("")) {
          ??????????? } else {

          ?????????????? Map fileMap=new HashMap();
          ?????????????? fileMap.put("TABLENAME",tableName); //表名,設為信息表

          ??????????????? InputStream stream = ff[a].getInputStream();
          ??????????????? java.util.Date date = new java.util.Date(System.
          ??????????????????????? currentTimeMillis()); //獲取當前時間
          ??????????????? String virFileName = date.getTime()+""+a;
          ??????????????? fileMap.put("FORMERLYFILENAME",ff[a].getFileName()); //標題文件的名字


          ??????????????? if (strnumberRowNew != null) {
          ??????????????????? intnumberRowNew = Integer.parseInt(strnumberRowNew);
          ??????????????????? for (int n = 1; n<= intnumberRowNew; n++) {
          ??????????????????? String filesor = request.getParameter(hiddenIDNewObject + n);
          ??????????????????????? if (filesor!=null&&filesor.equals(ff[a].getFileName())) {
          ??????????????????????????? String fileTitleValue = request.getParameter(fileTitle + n);
          ??????????????????????????? fileMap.put("FILENAME",fileTitleValue);
          ??????????????????????????? break;
          ??????????????????????? }
          ??????????????????? }
          ??????????????? }


          ??????????????? int dotIndex = ff[a].getFileName().lastIndexOf(".");
          ??????????????? String fileType = ff[a].getFileName().substring(dotIndex + 1);
          ??????????????? fileMap.put("FILEPATH",virFileName + "." + fileType); //路徑
          ??????????????? fileMap.put("FILETYPE",fileType);


          ??????????????? retList.add(fileMap);

          ??????????????? OutputStream bos =
          ??????????????????????? new FileOutputStream(storePath + virFileName +
          ???????????????????????????????????????????? "." + fileType);

          ??????????????? int bytesRead = 0;
          ??????????????? byte[] buffer = new byte[8192];
          ??????????????? while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) {
          ??????????????????? bos.write(buffer, 0, bytesRead);
          ??????????????? }
          ??????????????? bos.close();
          ??????????? }
          ??????? }

          ???????? return retList;

          ??? }
          ??? /**
          ???? *
          ???? * @param request HttpServletRequest
          ???? * @param list List????????????????? 數據中以存在附件
          ???? * @param fileNumControl String????? 同上
          ???? * @param hiddenIDNewObject String?? 同上
          ???? * @param fileTitle String?????????? 同上
          ???? * @return List
          ???? */
          ??? public List combinateEditList(HttpServletRequest request, List list,String fileNumControl,String hiddenIDNewObject,String fileTitle) {
          ????????? List result=new ArrayList();
          ????????? if(list==null||list.size()==0) return new ArrayList();
          ?????????? String strnumberRowNew = request.getParameter(fileNumControl);
          ????????? int? intnumberRowNew=0;
          ?????????? if (strnumberRowNew != null) {
          ?????????????? intnumberRowNew = Integer.parseInt(strnumberRowNew);
          ?????????????? for (int n = 1; n <= intnumberRowNew; n++) {
          ?????????????????? String filesor = request.getParameter("hiddenIDNewObject" +? n);
          ?????????????????? String fileTitleValue = request.getParameter(fileTitle + n);
          ?????????????????? for(int i=0;i<list.size();i++)
          ?????????????????? {
          ?????????????????????? Map fileMap = (Map)list.get(i);
          ?????????????????????? if((fileMap.get("ACCESSORYID").toString()).equals(filesor))
          ?????????????????????? {
          ?????????????????????????? fileMap.put("FILENAME",fileTitleValue);
          ?????????????????????????? result.add(fileMap);
          ??????????????????????????? break;
          ?????????????????????? }
          ?????????????????? }
          ?????????????? }
          ?????????? }
          ?????????? return result;
          ??? }

          }

          如果出現中文亂碼,請修改struts源程序的相關類把編碼修改成utf-8,網上可以查到。

          posted on 2007-02-02 20:34 ???MengChuChen 閱讀(1094) 評論(0)  編輯  收藏 所屬分類: struts
          主站蜘蛛池模板: 简阳市| 莒南县| 丹凤县| 开封县| 虎林市| 马龙县| 定远县| 讷河市| 湾仔区| 邢台市| 吉首市| 甘洛县| 博客| 徐汇区| 乳源| 巩留县| 丽江市| 宁明县| 崇左市| 盘山县| 明星| 蒙山县| 湖州市| 固安县| 德昌县| 上虞市| 扶风县| 滁州市| 九龙城区| 扶沟县| 乐亭县| 阳信县| 府谷县| 吉林省| 新乡市| 英吉沙县| 宜州市| 神农架林区| 怀柔区| 武义县| 栾川县|