ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>蜜桃成人在线视频,午夜精品在线,国产精品电影网站http://www.aygfsteel.com/jfy3d/category/1267.html<!--<a href=http://www.myjavaserver.com/~jfy3d/ target=_blank><img src='http://www.aygfsteel.com/images/blogjava_net/jfy3d/1610/t_myphoto.jpg' border='0' width='55' height='68'></a>--> <!-- Start FastOnlineUsers.com --> <a ><script type="text/javascript" src="http://fastonlineusers.com/on2.php?d=jfy3d.blogjava.net"></script> online</a> <!-- End FastOnlineUsers.com -->zh-cnTue, 27 Feb 2007 11:10:24 GMTTue, 27 Feb 2007 11:10:24 GMT60WebWork䞭自定义result视囟䜿甚POI生成Excelhttp://www.aygfsteel.com/jfy3d/archive/2006/04/11/40430.html剑事剑事Tue, 11 Apr 2006 04:16:00 GMThttp://www.aygfsteel.com/jfy3d/archive/2006/04/11/40430.htmlhttp://www.aygfsteel.com/jfy3d/comments/40430.htmlhttp://www.aygfsteel.com/jfy3d/archive/2006/04/11/40430.html#Feedback4http://www.aygfsteel.com/jfy3d/comments/commentRss/40430.htmlhttp://www.aygfsteel.com/jfy3d/services/trackbacks/40430.htmlWebWork䞭陀äº?jiš£n)默讀支持的几䞭视囟倖还可以自己来定义需芁的视囟åQŒåŠ‚JFreeChart,Excelœ{?br />
˜q™é‡Œç”ŸæˆExcel甚的是POI的API
WebWork䞭定义ResultType视囟ŸcÕdž‹åªéœ€èЁç‘ô承Result接口
代码劂䞋

package com.customer.resulttype;

import com.opensymphony.xwork.Result;
import com.opensymphony.xwork.ActionInvocation;
import com.opensymphony.webwork.ServletActionContext;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;

public class ExcelResult implements Result{
 (tš©ng) (tš©ng) (tš©ng) private HSSFWorkbook workbook;
 (tš©ng) (tš©ng) (tš©ng) private String filename;
 (tš©ng) (tš©ng) (tš©ng) private String contenttype;
 (tš©ng) (tš©ng) (tš©ng) public void execute(ActionInvocation invocation) throws Exception {
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) if(contenttype==null)
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) contenttype = "application/ms-excel";
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) if (workbook==null)
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) workbook = (HSSFWorkbook) invocation.getStack().findValue("workbook");
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng)

 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) HttpServletResponse response = ServletActionContext.getResponse();
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) response.setContentType(contenttype);
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) response.setHeader("Content-Disposition","attachment;Filename="+filename+".xls");
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) OutputStream os = response.getOutputStream();
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) workbook.write(os);
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) os.flush();
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) os.close();
 (tš©ng) (tš©ng) (tš©ng) }

 (tš©ng) (tš©ng) (tš©ng) public void setWorkbook(HSSFWorkbook workbook) {
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) this.workbook = workbook;
 (tš©ng) (tš©ng) (tš©ng) }

 (tš©ng) (tš©ng) (tš©ng) public void setFilename(String filename) {
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) this.filename = filename;
 (tš©ng) (tš©ng) (tš©ng) }

 (tš©ng) (tš©ng) (tš©ng) public void setContenttype(String contenttype) {
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) this.contenttype = contenttype;
 (tš©ng) (tš©ng) (tš©ng) }
}

视囟做完之后做劂䞋配Ÿ|®è¿è¡Œæµ‹è¯?br />
package com.customer.action;

import com.opensymphony.xwork.ActionContext;
import com.opensymphony.xwork.ActionSupport;
import com.opensymphony.webwork.ServletActionContext;
import com.dboperate.ResultGather;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.hssf.util.HSSFColor;

import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ByteArrayInputStream;
import java.util.List;
import java.util.Map;

public class ExportExcelAction extends ActionSupport {
 (tš©ng) (tš©ng) (tš©ng) private HSSFWorkbook workbook;

 (tš©ng) (tš©ng) (tš©ng) public String execute() throws Exception {
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) return SUCCESS;
 (tš©ng) (tš©ng) (tš©ng) }

 (tš©ng) (tš©ng) (tš©ng) public String product() throws Exception {
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) try {
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) workbook = new HSSFWorkbook();
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) HSSFSheet sheet = workbook.createSheet();

 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) workbook.setSheetName(0, "厂商产品", (short) 1);
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) HSSFRow row = sheet.createRow((short) 0);

 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) HSSFCell cell0 = row.createCell((short) 0);
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) HSSFCell cell1 = row.createCell((short) 1);
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) HSSFCell cell2 = row.createCell((short) 2);
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) HSSFCell cell3 = row.createCell((short) 3);
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) HSSFCell cell4 = row.createCell((short) 4);
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) HSSFCell cell5 = row.createCell((short) 5);
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) HSSFCell cell6 = row.createCell((short) 6);
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) HSSFCell cell7 = row.createCell((short) 7);
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) HSSFCell cell8 = row.createCell((short) 8);
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) HSSFCell cell9 = row.createCell((short) 9);

 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) cell0.setEncoding(HSSFCell.ENCODING_UTF_16);//˜q™é‡Œæ˜¯è®ŸŸ|®çŒ–码保证䞭文正垞星œC?br /> (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) cell1.setEncoding(HSSFCell.ENCODING_UTF_16);
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) cell2.setEncoding(HSSFCell.ENCODING_UTF_16);
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) cell3.setEncoding(HSSFCell.ENCODING_UTF_16);
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) cell4.setEncoding(HSSFCell.ENCODING_UTF_16);
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) cell5.setEncoding(HSSFCell.ENCODING_UTF_16);
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) cell6.setEncoding(HSSFCell.ENCODING_UTF_16);
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) cell7.setEncoding(HSSFCell.ENCODING_UTF_16);
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) cell8.setEncoding(HSSFCell.ENCODING_UTF_16);
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) cell9.setEncoding(HSSFCell.ENCODING_UTF_16);

 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) cell0.setCellValue("厂商å?);
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) cell1.setCellValue("产品å?);
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) cell2.setCellValue("重量");
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) cell3.setCellValue("星çñ”");
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) cell4.setCellValue("parama");
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) cell5.setCellValue("paramb");
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) cell6.setCellValue("paramc");
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) cell7.setCellValue("paramd");
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) cell8.setCellValue("状æ€?);
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) cell9.setCellValue("倇泚");

 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) } catch (Exception e) {
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) }
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) return SUCCESS;
 (tš©ng) (tš©ng) (tš©ng) }

 (tš©ng) (tš©ng) (tš©ng) public HSSFWorkbook getWorkbook() {
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) return workbook;
 (tš©ng) (tš©ng) (tš©ng) }


}

Xwork.xml侭配Ÿ|®åŠ å…?br />
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) <result-type default="true" name="freemarker"
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) <result-type name="excel" class="com.customer.resulttype.ExcelResult"/>
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) </result-types>

 (tš©ng)<action name="exportExcel" class="com.customer.action.ExportExcelAction">

 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) <result name="success" type="excel">
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) <param name="filename">productparam>
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng)
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) </result>

 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) </action>



剑事 2006-04-11 12:16 发衚评论
]]>
webwork+Freemarker蟃完敎的GRUD数据库操䜜䟋子œŽ€å•方䟿ä‹É甚同䞀䞪页面INSERTåQŒUPDATEã€‚åÆˆåžŠåˆ†™åµåŠŸèƒœïŒ‰(jšª)http://www.aygfsteel.com/jfy3d/archive/2006/03/14/35191.html剑事剑事Tue, 14 Mar 2006 02:52:00 GMThttp://www.aygfsteel.com/jfy3d/archive/2006/03/14/35191.htmlhttp://www.aygfsteel.com/jfy3d/comments/35191.htmlhttp://www.aygfsteel.com/jfy3d/archive/2006/03/14/35191.html#Feedback132http://www.aygfsteel.com/jfy3d/comments/commentRss/35191.htmlhttp://www.aygfsteel.com/jfy3d/services/trackbacks/35191.html˜q™äžªäŸ‹å­ä¹Ÿæ˜¯äž€ç›Žä»¥æ¥ç”šwebwork的èƒö见åŞ成的方匏
虜然是简单䟋子䞀些细节郚分也做䞊åŽÖMº†(jiš£n)

以䞋是简单诎明诊细可以参看源码

VIEW
通垞䞀䞪insert,update操䜜郜可以通过䞀䞪页面来完成åQ?br />˜q™é‡Œæˆ‘讟Ÿ|®form (tš©ng)çš?action="" (tš©ng) ˜q™æ ·ä»–默讀提亀到的是圓前URLã€?br />
ACTION
圚䞭定义几䞪æ–ÒŽ(guš©)³•,以user!insert.ww的方匏访问
˜q™æ ·grud操䜜ž®±å¯ä»¥åœšäž€äžªACTION䞭完成ã€?br /> (tš©ng) (tš©ng) (tš©ng) public String insert() throws Exception {
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) ....
 (tš©ng) (tš©ng) (tš©ng) }

 (tš©ng) (tš©ng) (tš©ng) public String update() throws Exception {
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) ....
 (tš©ng) (tš©ng) (tš©ng) }

 (tš©ng) (tš©ng) (tš©ng) public String delete() throws Exception {
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) ....
 (tš©ng) (tš©ng) (tš©ng) }

 (tš©ng) (tš©ng) (tš©ng) public String list() throws Exception {
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) ....
 (tš©ng) (tš©ng) (tš©ng) }

DAO
䞋面是DAO接口
public interface BaseDao {
 (tš©ng) (tš©ng) (tš©ng) public int insert(Object form);
 (tš©ng) (tš©ng) (tš©ng) public int update(Object form);
 (tš©ng) (tš©ng) (tš©ng) public int delete(Object form);
 (tš©ng) (tš©ng) (tš©ng) public int delete(int[] id);//˜q™é‡Œæ˜¯äؓ(fšŽ)äº?jiš£n)支持批量删é?br /> (tš©ng) (tš©ng) (tš©ng) public Map getInfo(Object form);
 (tš©ng) (tš©ng) (tš©ng) public List getList();
 (tš©ng) (tš©ng) (tš©ng) public void getList(Pagination page);//˜q™é‡Œæ²¡æœ‰˜q”回å€û|ŒŒå†…诊。。。ã€?br />}

EXTENDS
扩展郚分
1 BaseAction
˜q™é‡Œå¢žåŠ äº?jiš£n)䞀些公甚方䟿的功胜åQŒäŸ¿äºŽå…¶ä»–ACTIONŸl§æ‰¿åQŒå…±ç”?br />2 DaoSupport
˜q™é‡Œä¹Ÿæ˜¯äž€äº›å…¬ç”šçš„功胜åQŒDao䞭甚的倧郚分SQL郜是配眮圚倖郚配Ÿ|®æ–‡ä»¶äž­


3DaoFactory
public class DaoFactory {
 (tš©ng) (tš©ng) (tš©ng) public static BaseDao getDao(String daoKey){
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) if("user".equals(daoKey)) //˜q™æ ·çš„æ–¹åŒå¯ä»¥é€šè¿‡åœšXWORK.XML侭配Ÿ|®ACTION䜿甚哪䞪DAOåQˆé™(ršŽn)态泚入(jšª)
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) return new UserDao();
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) else
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) return null;

 (tš©ng) (tš©ng) (tš©ng) }
}


数据库是MYSQL5

CREATE TABLE `usertbl` ( (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng)
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) `User_ID` int(11) NOT NULL auto_increment, (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng)
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) `username` varchar(50) default NULL, (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng)
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) `password` varchar(50) default NULL, (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng)
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) `truename` varchar(50) default NULL, (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng)
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) `usersex` tinyint(4) default NULL, (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng)
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) `useremail` varchar(50) default NULL, (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng)
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) PRIMARY KEY (tš©ng) (`User_ID`) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng)
 (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) (tš©ng) )


源码䞋蝲地址
http://www.migti.com/download.ww



剑事 2006-03-14 10:52 发衚评论
]]>
解决WEBWORK2.17䞭空文äšg䞊䌠时action报匂垔R”™è¯¯çš„问题http://www.aygfsteel.com/jfy3d/archive/2006/02/20/31595.html剑事剑事Mon, 20 Feb 2006 02:15:00 GMThttp://www.aygfsteel.com/jfy3d/archive/2006/02/20/31595.htmlhttp://www.aygfsteel.com/jfy3d/comments/31595.htmlhttp://www.aygfsteel.com/jfy3d/archive/2006/02/20/31595.html#Feedback0http://www.aygfsteel.com/jfy3d/comments/commentRss/31595.htmlhttp://www.aygfsteel.com/jfy3d/services/trackbacks/31595.htmlwebwork里䞊䌠文件比蟃方䟿几行代码ž®±å¯ä»¥å®Œæˆã€?BR>只是有䞪ž®é—®é¢˜ïŒŒž®±æ˜¯åœ“form里的file控äšg没有选文件的时提亀action
ž®×ƒŒš(xš¬)出现匂垞,通垞埈倚应甚䞭䞍䞀定非芁垊文äšg䞊䌠的˜q™äžªåº”该
œŽ—webwork䞀䞪bug吧ã€?BR>
从报错的地方可以查出是圚fileupload拊截噚䞭
String[] fileName = multiWrapper.getFileNames(inputName);
˜q™äž€è¡ŒåŒ€å§‹äž­æ–­æŽ‰çš?BR>ž®±æ˜¯multiWrapper.getFileNames(inputName);䞭出现空指针错误

劂果webwork.properties侭配Ÿ|®çš„æ˜¯pell䞊䌠åŒ?BR>需芁扟到PellMultiPartRequest˜q™äžªŸcȝš„以䞋æ–ÒŽ(guš©)³•
//--------------------------------------------------------------------------------------
public String[] getFileNames(String fieldName) {
              // TODO - not sure about this - is this the filename of the actual file or
              // TODO - the uploaded filename as provided by the browser?
              // TODO - Not sure what version of Pell this class uses as it doesn't seem to be the latest 
              //˜q™é‡Œå€’是诎明äº?jiš£n)条ä»ÓžŒŒž®±æ˜¯äžçŸ¥é“äØ?fšŽ)什么还˜q™ä¹ˆå?BR>            return new String[]{multi.getFile(fieldName).getName()};
}
---------------------------------------------------------------------------------------//



可以看到
multi.getFile(fieldName).getName()劂果文äšg䞺空肯定äŒ?xš¬)报错çš?
可以先修æ”ÒŽ(guš©)ˆä»¥äž‹æ–¹åŒ
//---------------------------------------------------------------------------------------
public String[] getFileNames(String fieldName) {
        if(multi.getFile(fieldName)!=null)   //倚加䞀䞪刀æ–?BR>            return new String[]{multi.getFile(fieldName).getName()};
        else
            return new String[]{};
    }
----------------------------------------------------------------------------------------//
˜q™æ ·form里fileäžé€‰æ–‡ä»¶å°±äžåœšå‡ºåŒ‚åžæ€º†(jiš£n)
甹cos䞊䌠倄理æ–ÒŽ(guš©)³•䞀æ ?BR>


陀䞊面方æ³?BR>˜q˜ä(shšŽ)¿®æ”¹fileupload拊截噚也可以解决
String[] fileName = multiWrapper.getFileNames(inputName);
扑ֈ°˜q™è¡Œ
然后修改成䞋面样å­?BR>//-----------------------------------------------------------------------------------
String[] fileName =null;

try{
      fileName = multiWrapper.getFileNames(inputName);
}catch(Exception ex){
      //file is null
}
-----------------------------------------------------------------------------------//



剑事 2006-02-20 10:15 发衚评论
]]>
Spring + hibernate + webwork + freemarker 敎合配眮http://www.aygfsteel.com/jfy3d/archive/2005/11/06/18507.html剑事剑事Sun, 06 Nov 2005 15:48:00 GMThttp://www.aygfsteel.com/jfy3d/archive/2005/11/06/18507.htmlhttp://www.aygfsteel.com/jfy3d/comments/18507.htmlhttp://www.aygfsteel.com/jfy3d/archive/2005/11/06/18507.html#Feedback0http://www.aygfsteel.com/jfy3d/comments/commentRss/18507.htmlhttp://www.aygfsteel.com/jfy3d/services/trackbacks/18507.html

å­Šä¹ (fš€n)的时候看äº?jiš£n)眑䞊的䞀些配Ÿ|®æ•™œE‹ïŒŒæ²¡æœ‰èŸ‘Öˆ°æƒŒ™Šçš„结æž?BR>查了(jiš£n)奜倚资料才匄出来åQŒéšåŽåŽè‡ªå·±æ•Žç†å‡ÞZž€äžªé…Ÿ|®æ–¹æ³?BR>
web.xml 
// ˜q™é‡Œäžéœ€èŠé…Ÿ|®å­—œWŠè¿‡æ»€ïŒŒŸ|‘䞊有的䟋子加了(jiš£n)åQŒå®žé™…䞊
webwork.properties里讟Ÿ|®åŠ‚äž‹å°±å¯ä»¥äº?jiš£n)页面也是GBK
webwork.locale=zh_CN
webwork.i18n.encoding=GBK
åQïŒåQïŒåQïŒåQïŒåQïŒåQïŒåQïŒåQïŒåQïŒåQïŒåQïŒåQïŒåQïŒåQ?BR><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
    </context-param>

 <listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>

 <listener>
  <listener-class>com.atlassian.xwork.ext.ResolverSetupServletContextListener</listener-class>
 </listener>
    <!--
    <servlet>
    <servlet-name>context</servlet-name>
             <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
             <load-on-startup>1</load-on-startup>
     </servlet>
     -->
    <servlet>
        <servlet-name>webwork</servlet-name>
        <servlet-class>com.opensymphony.webwork.dispatcher.ServletDispatcher</servlet-class>
        <load-on-startup>3</load-on-startup>
    </servlet>

 <servlet>
  <servlet-name>freemarker</servlet-name>
  <servlet-class>com.opensymphony.webwork.views.freemarker.FreemarkerServlet</servlet-class>
  <load-on-startup>10</load-on-startup>
 </servlet>

    <servlet-mapping>
        <servlet-name>webwork</servlet-name>
        <url-pattern>*.action</url-pattern>
    </servlet-mapping>

 <servlet-mapping>
  <servlet-name>freemarker</servlet-name>
  <url-pattern>*.ftl</url-pattern>
 </servlet-mapping>

    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>

    <taglib>
        <taglib-uri>webwork</taglib-uri>
        <taglib-location>/WEB-INF/webwork.tld</taglib-location>
    </taglib>

</web-app>

åQïŒåQïŒåQïŒåQïŒåQïŒåQïŒåQïŒåQïŒåQïŒåQïŒåQïŒåQïŒåQïŒåQ?BR>
xwork.xml

==================---------------------------------------------
<?xml version="1.0"?>
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd">

<xwork>

  <include file="webwork-default.xml"/>
    <package name="users" extends="webwork-default"
        externalReferenceResolver="com.atlassian.xwork.ext.SpringServletContextReferenceResolver">

        <interceptors>
            <interceptor name="reference-resolver" class="com.opensymphony.xwork.interceptor.ExternalReferencesInterceptor"/>
            <interceptor-stack name="myDefaultWebStack">
                <interceptor-ref name="defaultStack"/>
                <interceptor-ref name="reference-resolver"/>
                <interceptor-ref name="model-driven"/>
       <interceptor-ref name="params"/>
            </interceptor-stack>
        </interceptors>

<default-interceptor-ref name="myDefaultWebStack"/>
        <action name="blogUser" class="com.jsblog.action.BlogUserAction">
   <external-ref name="baseDao">baseDaoTarget</external-ref>     //˜q™é‡Œæ˜¯æŠŠapplicationContext里配Ÿ|®çš„DAO 泚入actioné‡?action里芁有baseDao属æ€?BR>   <result name="success">/add.htm</result>
  </action>
-------------------------------------------------------------------------

applicationContext.xml

---------------------------------------------------------------------------
<?xml version="1.0"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="no" default-dependency-check="none" default-lazy-init="false">
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName">
            <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
        </property>
        <property name="url">
            <value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jsblog;SelectMethod=cursor</value>
        </property>
        <property name="username">
            <value>sa</value>
        </property>
        <property name="password">
            <value>jfy</value>
        </property>
    </bean>

    <bean id="sessionFactory"
          class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
        <property name="dataSource">
            <ref local="dataSource"/>
        </property>
        <property name="mappingResources">
            <list>
                <value>com/jsblog/BlogUserForm.hbm.xml</value>
            </list>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">
                    net.sf.hibernate.dialect.SQLServerDialect
                </prop>
                <prop key="hibernate.show_sql">true</prop>
            </props>
        </property>
    </bean>

    <bean id="transactionManager"
          class="org.springframework.orm.hibernate.HibernateTransactionManager">
        <property name="sessionFactory">
            <ref local="sessionFactory"/>
        </property>
    </bean>


    <bean id="baseDaoTarget" class="com.jsblog.dao.BlogUserDao">
        <property name="sessionFactory">
            <ref local="sessionFactory"/>
        </property>
    </bean>


</beans>
---------------------------------------------------------------------------

BlogUserDao.java
---------------------------------------------------------------------------
package com.jsblog.dao;

import org.springframework.orm.hibernate.support.HibernateDaoSupport;
import org.springframework.orm.hibernate.HibernateCallback;
import org.springframework.orm.hibernate.SessionFactoryUtils;
import com.jsblog.BlogUserForm;

import java.io.Serializable;
import java.util.List;

import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Session;

public class BlogUserDao extends HibernateDaoSupport implements BaseDao {

    public void insert(BlogUserForm bloguser) {
        getHibernateTemplate().save(bloguser);
    }

 

 

}



剑事 2005-11-06 23:48 发衚评论
]]>
䞪äh觉埗䞀䞪䞍错的架构Ÿl„合F(tuš¢n)reeMarker+webwork+hibernate+Springhttp://www.aygfsteel.com/jfy3d/archive/2005/05/18/4464.html剑事剑事Wed, 18 May 2005 03:08:00 GMThttp://www.aygfsteel.com/jfy3d/archive/2005/05/18/4464.htmlhttp://www.aygfsteel.com/jfy3d/comments/4464.htmlhttp://www.aygfsteel.com/jfy3d/archive/2005/05/18/4464.html#Feedback1http://www.aygfsteel.com/jfy3d/comments/commentRss/4464.htmlhttp://www.aygfsteel.com/jfy3d/services/trackbacks/4464.htmlFreeMarker代替jspäœœäØ“(fšŽ)view䜿甚
原因是FreeMarkeråQŒjava 的暡板匕擎比jsp奜的地方œŽ€å•的诎速床快语法œŽ€å•因äؓ(fšŽ)view里䞍需芁有什么倍杂操䜜(jšª)åQŒåœ“然的暡板匕擎˜q˜æœ‰åˆ«çš„劂VelocityåQŒåªæ˜¯æ¯”FreeMarker功胜逊色ç‚?BR>FreeMarker䞭文资料䞍倧倚䞍过Ÿ|‘䞊已经有äh写了(jiš£n)䞀些教œE?BR>
äžÞZ»€ä¹ˆä‹É甹webworkå‘?BR>----
WebWork是由O(jiš¡n)penSymphonyŸl„织匀发的åQŒè‡ŽåŠ›äºŽŸl„äšg化和代码重甚的拉出匏MVC暡匏J2EE Web框架。WebWork目前最新版本是2.1åQŒçŽ°åœšçš„WebWork2.x前èín是Rickard Oberg匀发的WebWorkåQŒäœ†çŽ°åœšWebWork已经被拆分成äº?jiš£n)Xwork1和W(xušŠ)ebWork2䞀䞪™å¹ç›®ã€?XworkœŽ€‹zã€çµ‹zÕdŠŸèƒœåŒºå€§ïŒŒå®ƒæ˜¯äž€äžªæ ‡å‡†çš„Command暡匏实现åQŒåƈ䞔完党从web层脱Œ›Õd‡ºæ¥ã€?Xwork提䟛äº?jiš£n)埈倚栞心(jš©)功胜ïŒ?xš¬)前端拊截机interceptoråQ‰ïŒŒ˜qè¡Œæ—¶è¡šå•属性验证ŸcÕdž‹èœ¬æ¢åQŒåŒºå€§çš„衚蟟匏语­a€åQˆOGNL â€?the Object Graph Notation LanguageåQ‰ïŒŒIoCåQˆInversion of Control倒眮控制åQ‰å®¹å™šç­‰ã€?WebWork2建立圚Xwork之䞊åQŒå€„理HTTP的响应和è¯äh±‚。WebWork2䜿甚ServletDispatcherž®†HTTPè¯äh±‚的变成Action(䞚务层ActionŸc?, sessionåQˆäŒš(xš¬)话(jšª)applicationåQˆåº”甚皋序(jšª)范囎的映ž®„requestè¯äh±‚参数映射。WebWork2支持倚视囟衚œCºïŒŒè§†å›Ÿéƒšåˆ†å¯ä»¥äœ¿ç”šJSP, Velocity, FreeMarker, JasperReportsåQŒXMLœ{‰ã€?BR>------
webwork圚讟计䞊䌘ä(shšŽ)ºŽç›®å‰åžžç”šçš„struts,jsfã€?BR>䞪ähŸléªŒç”šè¿‡struts,webwork䜜䞜西候觉埗webwork又明昄¡š„䌘势
Tapestry框架埈䞍错䞍˜q‡èµ„料少åQŒå­Šä¹?fš€n)隟床é«?BR>http://www.zahui.com/html/6/36141.htm˜q™äžªæ˜¯çœ‘䞊的盞关比蟃仅䟛参è€?BR>关于框架比蟃Ÿ|‘䞊文章也比蟃倚

至于䜿甚hibernateåQŒSpring䌘点倚倚åQŒå€§å®‰™ƒœåœšå­ŠåQŒè¯„价郜䞍错自然是奜䞜西



剑事 2005-05-18 11:08 发衚评论
]]>
webwork2圚weblogic䞋和tomcat䞋的䞭文问题解决http://www.aygfsteel.com/jfy3d/archive/2005/05/18/4176.html剑事剑事Wed, 18 May 2005 01:24:00 GMThttp://www.aygfsteel.com/jfy3d/archive/2005/05/18/4176.htmlhttp://www.aygfsteel.com/jfy3d/comments/4176.htmlhttp://www.aygfsteel.com/jfy3d/archive/2005/05/18/4176.html#Feedback6http://www.aygfsteel.com/jfy3d/comments/commentRss/4176.htmlhttp://www.aygfsteel.com/jfy3d/services/trackbacks/4176.html
äž­æ–‡˜q™æ–¹é¢webwork2比struts曎容易解å†?nbsp; 䞍甚讄¡œ®fitler˜q‡æ×o(hšŽ)äº?jiš£n)䞍é?BR>圓然webwork比strust的䌘势䞍只是˜q™äº›

 jsp里郜讄¡œ®gb2312ž®±å¯ä»¥ç¬¬äž€

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %><html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312">

有äh诎䞍胜加åQŒåŠ äº?jiš£n)åè€ŒäØ•ç ïŒŒæˆ‘å°±æ²¡é—®é¢˜ç¬¬äº?BR>
圚webwork.properties里加䞊webwork.locale=zh_CNwebwork.i18n.encoding = GB2312

䞊面做完之后ž®±O(jiš¡n)Käº?™åµé¢äŒ å€û|ŒŒæ•°æ®åº“插入读出郜OKäº?BR>
䞍过˜q˜æœ‰éœ€èŠè§£å†³çš„åœ°æ–¹ 甚过struts的郜知道<bean:message>æ˜¯äØ•ç çš„webworkä¹Ÿäž€æ øPŒŒåœ“ç„¶˜q™æ˜¯javaœE‹åºè¯ÀL–‡æœ¬æ–‡ä»‰™‡Œçš„䞭文就是äؕ码的 解决æ–ÒŽ(guš©)³•我以前知道的是甚native2ascii来è{换资源文ä»ÓžŒŒäžè¿‡èœ¬åŽåœšçŒ–蟑就䞍讀识了(jiš£n)åQŒä¿®æ”¹äŸ‹Æ¡è{䟝次éºÈƒŠ(chš³)啊所以我˜q˜æ˜¯é€‰æ‹©ä¿®æ”¹webwork textTag的源ç ?åQŒåŸˆœŽ€å•çš„

扑ֈ°TextTag.java 然后扑ֈ°äž‹é¢˜q™æ®µ

if(msg != null) {           
        try{
              msg = new String(msg.getBytes("iso-8859-1"));//加入˜q™è¡Œž®±O(jiš¡n)Käº?jiš£n)˜q™æ ·äŒ?xš¬)åª?jiš£ng)响到囜际化åQˆå¯ä»¥åˆ€æ–­åŠ‚æžœäžæ˜¯zh_CNž®×ƒžæ‰§è¡Œèœ¬ç åQŒæˆ‘˜q˜æ²¡è¯•过åQ?nbsp;              
            if(getId() == null)               
            {                   
                     pageContext.getOut().write(msg);                
            } else  {           
                     stack.getContext().put(getId(), msg);               
            }           
       } catch(IOException e) { 
               throw new JspException(e);           
      }       
}

struts里也可以˜q™ä¹ˆåšçš„

˜q™æ ·ž®×ƒžç”šåœšå¯¹èµ„源文件进行native2asciiäº?BR>
œW¬äž‰

˜q˜æœ‰äŒ?xš¬)äØ•ç çš„åœ°æ–¹ž®±æ˜¯fileupload  䞊䌠䞭文名的文äšgäŒ?xš¬)遇到文件名ä¹Þq é—®é¢˜

解决æ–ÒŽ(guš©)³•试圚webwork.properties讄¡œ®äž€äž?BR>
webwork.multipart.parser=pell    //䞍芁甚cos

tomcat䞋䞭文解å†Ïx(chš®ng)–¹åŒå’ŒäžŠé¢ç›žåŒåQŒäž˜q‡è¿˜éœ€èŠå€šåŠ äž€äžªURIEncoding="GBK"
䜍眮圚server.xml里解决urlé‡Œæœ‰äž­æ–‡å‡ºçŽ°çš„äØ•ç ?BR>    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="80"               minProcessors="5" maxProcessors="75"
               enableLookups="true" redirectPort="8443"
               acceptCount="100" debug="0" connectionTimeout="20000"
               useURIValidationHack="false" disableUploadTimeout="true" URIEncoding="GBK"/>

OK 目前我遇到的ž®Þp¿™äº›äº†(jiš£n)


剑事 2005-05-18 09:24 发衚评论
]]>
圚webwork2的action里取request.getParameter参数http://www.aygfsteel.com/jfy3d/archive/2005/05/12/4183.html剑事剑事Wed, 11 May 2005 16:12:00 GMThttp://www.aygfsteel.com/jfy3d/archive/2005/05/12/4183.htmlhttp://www.aygfsteel.com/jfy3d/comments/4183.htmlhttp://www.aygfsteel.com/jfy3d/archive/2005/05/12/4183.html#Feedback1http://www.aygfsteel.com/jfy3d/comments/commentRss/4183.htmlhttp://www.aygfsteel.com/jfy3d/services/trackbacks/4183.htmlwebwork的action已经è„ÞqŠ»çš„requeståQŒæ˜¯ç”šgetXxx()来取提亀˜q‡æ¥çš„参æ•?BR>劂果圚写œE‹åºçš„æ—¶å€™ç‰¹å®šéœ€èŠè‡ªå·±æ¥å–Parameter可以通过以䞋䞀种æ–ÒŽ(guš©)³•实现

œW¬äž€¿Uç”šActionContextŸc»ïŒŒæ‰€æœ‰çš„参数郜从˜q™é‡ŒActionContext.getContext().getParameters()å?BR>他返回的是䞀䞪MapŸcÕdž‹
Map param= ActionContext.getContext().getParameters();
劂果有䞀䞪提亀过来的username
那就可以˜q™æ ·å†?BR>param.get("username");䞍过˜q™é‡ŒèŠæ³šæ„äž€äž‹param.get("username")是䞀䞪String数组(äžÞZ»€ä¹ˆèЁ˜q”回数据我也䞍知道我从weblogicœH—口看到param.get("username")被out出来Ljava.lang.StringåQŒå¿™‹zÖMº†(jiš£n)半倩)

  String value[] = (String[])param.get("username");
  String username = "";
  for(int i=0;i<value.length;i++)
  {
   username +=value[i];
  }
˜q™æ ·ž®±å¯ä»¥åŸ—到正Œ‹®çš„usernameäº?/P>

œW¬äºŒ¿Uæ–¹æ³•是盎接把request匕甚˜q›æ¥

ServletActionContext.getRequest().getParameter("username")
ServletActionContext.getRequest()ž®±æ˜¯httpservletrequest
˜q™äžªŸcÕd†import com.opensymphony.webwork.ServletActionContext
甹è“v来方䟿些



剑事 2005-05-12 00:12 发衚评论
]]>
webwork2+FreeMarker 制䜜数据列衚昄¡€ºœŽ€å•实äŸ?/title><link>http://www.aygfsteel.com/jfy3d/archive/2005/05/11/4174.html</link><dc:creator>剑事</dc:creator><author>剑事</author><pubDate>Wed, 11 May 2005 07:41:00 GMT</pubDate><guid>http://www.aygfsteel.com/jfy3d/archive/2005/05/11/4174.html</guid><wfw:comment>http://www.aygfsteel.com/jfy3d/comments/4174.html</wfw:comment><comments>http://www.aygfsteel.com/jfy3d/archive/2005/05/11/4174.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jfy3d/comments/commentRss/4174.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jfy3d/services/trackbacks/4174.html</trackback:ping><description><![CDATA[<div id="wmqeeuq" class=postText> <P>刚刚接觊äº?jiš£n)FreeMarker觉埗䞍错</P> <P>做了(jiš£n)䞪小䟋子<BR>刚刚接觊äº?jiš£n)FreeMarker觉埗䞍错做了(jiš£n)䞪小䟋子,没有甚到jsp和jsptag </P> <P>銖先建立䞪数据衚里面有username,password䞀䞪字段自己随䟿加几条数æ?BR>建立䞀䞪webwork  action    TestAction.java<BR>圚xwork.xml里加入劂䞋内å®?BR>----------------------------------------<BR>     <ACTION class=com.action.TestAction name="test"><BR>      <RESULT name="success" type="freemarker">/test.flt</RESULT><BR>    </ACTION> <BR>----------------------------------------<BR>TestAction.java代码劂䞋<BR>--------------------------------------------------<BR>package com.action;</P> <P>import com.opensymphony.xwork.ActionSupport;<BR>import java.util.*;<BR>import com.ResultGather;</P> <P>public class TestAction extends ActionSupport <BR>{<BR> private List lis;<BR> private ResultGather rs;<BR> public List getLis()<BR> {<BR>  return this.lis;<BR> }<BR> public String execute() throws Exception <BR> {<BR>  rs = new ResultGather();<BR>  lis = rs.selectRS("select * from userbasedatum");//数据Ÿl“果我是甚List,HashMapž®è£…çš?HashMap存的是单条记åœ?BR>  return SUCCESS;<BR> }<BR>}</P> <P>-------------------------------------------------------------------------------------------------------------------<BR>ResultGather.java代码劂䞋<BR>----------------------------------------------------------<BR>package com;</P> <P>import conn.DBConnManager;//数据库连接池<BR>import java.sql.*;<BR>import java.util.*;</P> <P>public class ResultGather <BR>{<BR> private String sql;<BR> public ResultGather()<BR> { <BR> }<BR> public ResultGather(String sqlcom)<BR> {<BR>  this.sql=sqlcom;<BR> }<BR> public List selectRS(String sqlStr)<BR> {<BR>  this.sql = sqlStr;<BR>  return selectRS(); <BR> }<BR> public List selectRS() //数据Ÿl“果圚这里装入List和Map<BR> {<BR>  List rsall = new ArrayList();<BR>  DBConnManager conn = null;<BR>  Connection  con = null;<BR>  Statement stmt = null;<BR>  ResultSet rs = null;<BR>  Map rsTree;<BR>  try{<BR>   conn = DBConnManager.getInstance();<BR>   con = conn.getConnection("mssql");<BR>   stmt = con.createStatement();<BR>   rs = stmt.executeQuery(sql);<BR>   ResultSetMetaData rsmd = rs.getMetaData();<BR>   int numberOfColumns = rsmd.getColumnCount();<BR>   while(rs.next())<BR>   {<BR>   rsTree = new HashMap(numberOfColumns);<BR>    for(int r=1;r<NUMBEROFCOLUMNS+1;R++)<BR>    {<BR>     rsTree.put(rsmd.getColumnName(r),rs.getObject(r)); <BR>     <BR>    }<BR>    rsall.add(rsTree);<BR>   }<BR>   <BR>  }catch(java.lang.Exception ex){<BR>   ex.printStackTrace();<BR>  }finally{<BR>   try{<BR>    if(rs!=null)<BR>     rs.close();<BR>    if(stmt!=null)<BR>     stmt.close();<BR>    if(conn!=null)<BR>     conn.releaseConnection("mssql",con);<BR>   }catch(Exception e){<BR>    System.out.println(e);<BR>   } <BR>  }<BR>  return rsall;<BR> }<BR> }<BR>-----------------------------------------------------------------------------------------------<BR>test.flt代码劂䞋<BR>-----------------------------------------------------------------------------------------<BR><#list lis as x><BR>${x.username},<BR>${x.password}<BR><BR></#list><BR></#LIST>     //freemarker甚法Ÿ|‘䞊有盞关介Ÿl?BR>-------------------------------------------------------------------------------------</P> <P>OK 完成äº?没有甚到jsp<%.....%>和jsptag<BR>甚这䞪䟋子做䞀点修改就可以å…ähœ‰åˆ†é¡µç”šèƒœäº?/P></DIV><img src ="http://www.aygfsteel.com/jfy3d/aggbug/4174.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jfy3d/" target="_blank">剑事</a> 2005-05-11 15:41 <a href="http://www.aygfsteel.com/jfy3d/archive/2005/05/11/4174.html#Feedback" target="_blank" style="text-decoration:none;">发衚评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> Ö÷ÕŸÖ©Öë³ØÄ£°å£º <a href="http://" target="_blank">¡×ÓÏØ</a>| <a href="http://" target="_blank">Ÿ°Äþ</a>| <a href="http://" target="_blank">¶ŒÔÈÊÐ</a>| <a href="http://" target="_blank">Ÿ©ÉœÏØ</a>| <a href="http://" target="_blank">ÓÚ¶ŒÏØ</a>| <a href="http://" target="_blank">ž·ÑôÊÐ</a>| <a href="http://" target="_blank">ÖÐÎÀÊÐ</a>| <a href="http://" target="_blank">ÐìÖÝÊÐ</a>| <a href="http://" target="_blank">ÃÉ×ÔÏØ</a>| <a href="http://" target="_blank">°²Ë³ÊÐ</a>| <a href="http://" target="_blank">»ôÖÝÊÐ</a>| <a href="http://" target="_blank">æÄÔŽÏØ</a>| <a href="http://" target="_blank">¶šÏåÏØ</a>| <a href="http://" target="_blank">œõÖÝÊÐ</a>| <a href="http://" target="_blank">Í©³ÇÊÐ</a>| <a href="http://" target="_blank">ÒåÎÚÊÐ</a>| <a href="http://" target="_blank">Äϰ²ÊÐ</a>| <a href="http://" target="_blank">ÏæÌ¶ÊÐ</a>| <a href="http://" target="_blank">ÉñÅ©ŒÜÁÖÇø</a>| <a href="http://" target="_blank">ÁÙä¬ÏØ</a>| <a href="http://" target="_blank">ä¬ÄÏÊÐ</a>| <a href="http://" target="_blank">žßŽŸÏØ</a>| <a href="http://" target="_blank">ÇåÐìÏØ</a>| <a href="http://" target="_blank">¹óÄÏÏØ</a>| <a href="http://" target="_blank">ÐÅÑôÊÐ</a>| <a href="http://" target="_blank">ÕòÆœÏØ</a>| <a href="http://" target="_blank">»Ý¶«ÏØ</a>| <a href="http://" target="_blank">œð̳ÊÐ</a>| <a href="http://" target="_blank">ŒòÑôÊÐ</a>| <a href="http://" target="_blank">ž·ÑôÊÐ</a>| <a href="http://" target="_blank">œ­°²ÏØ</a>| <a href="http://" target="_blank">ÑÀ¿ËʯÊÐ</a>| <a href="http://" target="_blank">ÆœË³ÏØ</a>| <a href="http://" target="_blank">ÄáÄŸÏØ</a>| <a href="http://" target="_blank">°ÍÑåÏØ</a>| <a href="http://" target="_blank">Ìì¶ëÏØ</a>| <a href="http://" target="_blank">ÇúÎÖÏØ</a>| <a href="http://" target="_blank">±ŠÇåÏØ</a>| <a href="http://" target="_blank">ÍòÈÙÏØ</a>| <a href="http://" target="_blank">ÁÖÎ÷ÏØ</a>| <a href="http://" target="_blank">ÃöÇåÏØ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>