페이지 나누기 연습 (2) (ssh+freemarker)

5, 그룹 삭제 기능, checkbox를 통해 선택.
function unselectall(){
         if(document.form2.all.checked){
                document.form2.all.checked =false;
          }
    }
    function checkall(form){
        for (var i=0;i<form.elements.length;i++){
            var e = form.elements[i];
            if (e.Name != 'all'&&e.disabled==false)
                   e.checked = form.all.checked;
        }
   }
   function  deluser(currentPage,pageSize){	    
	   document.form2.action="deluser.action?page.currentPage="+currentPage+"&page.pageSize="+pageSize; 
	   // userModel.delib
	   document.form2.submit();
	} 

 
6. 사용자가 셀을 클릭하면 됩니다.
function redirecAction(uid){	   
	   document.form2.action="toLookPage.action?userModel.uid="+uid;
	   document.form2.submit();
   } 

 
<td onclick="redirecAction('${x[0]?if_exists}');">

 
7. 중국어 디코딩을 해결하고 UTF-8로 통일합니다.
   1)、struts.properties           struts.i18n.encoding=UTF-8           struts.locale=zh_CN
   2)、freemarker.properties           locale=zh_CN            default_encoding=UTF-8   3)、struts.xml
<?xml version="1.0" encoding="UTF-8"?>

 
   4)、html  
   
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

 
<form id="from3" name="from3" action="changpagesize.action" method="post">

   
5), jsp 관련 중국어 코드가 있으면 필터를 추가해야 합니다.    
       a) 、web.xml(SetCharacterEncoding.java 및 SetCharacterEncodingFilter.java)
<filter>
        <filter-name>Set Character Encoding</filter-name>
        <filter-class>nn.bbs.common.SetCharacterEncodingFilter</filter-class>
        <init-param>
             <param-name>encoding</param-name>
             <param-value>UTF-8</param-value>
        </init-param>
       <init-param>
             <param-name>ignore</param-name>
             <param-value>true</param-value>
      </init-param>
     </filter> 
      <filter-mapping>
      <filter-name>Set Character Encoding</filter-name>
      <url-pattern>/*</url-pattern>
   </filter-mapping>

 
또는
 
<filter>
       <filter-name>SetCharacterEncoding</filter-name>
       <filter-class>nn.bbs.common.SetCharacterEncoding</filter-class>
   </filter>
   <filter-mapping>
      <filter-name>SetCharacterEncoding</filter-name>
    <url-pattern>/*</url-pattern>
   </filter-mapping> 

 
       b)、jsp
<%@ page language="java" contentType="text/html;charset=utf-8"%>

 
8. 표의 미화, 마우스가 특정한 칸을 지정하여 표시..참조
   
9. freemarker로 select를 조작하면 사용자의 시 이름, 성 이름을 표시합니다.
    
<select id="A" onfocus="getProvince();" onchange="getCity(this.value)">
         <#if userModel.shengname?exists>
           <option >${userModel.shengname?if_exists}</option>  
         <#else>
             <option> </option> 
         </#if>
   </select> 
   <select id="B" name="userModel.shiid">
         <#if userModel.shiname?exists>
             <option>${userModel.shiname?if_exists}</option> 
         <#else>
             <option> </option> 
         </#if>
   </select> 

  
10. 한 페이지의 데이터를 Excel 파일로 저장합니다.
   1)、struts-user.xml
      
<!--  Excel -->
		<action name="excel" method="getexcel" class="userAction">
                <result name="excel" type="stream">
                    <param name="contentType">application/vnd.ms-excel</param>    <!--  ContentType -->
                    <param name="inputName">excelStream</param>                   <!--  Action  -->
                    <param name="contentDisposition">filename="standard.xls"</param>
                    <param name="bufferSize">1024</param>
                </result>
        </action>

 
   2)、UserAction.java
// Ecxel
	public String getexcel() throws Exception {
		excelStream=userService.gettheInputStream();  
        return "excel";
    }

 
   3)、UserServerImpl.java
// Excel
    public  InputStream gettheInputStream(){
    	//create excel report 
		//first create workbook 
		HSSFWorkbook workBook = new HSSFWorkbook(); 
		//create sheet 
		HSSFSheet sheet = workBook.createSheet("UserSheet"); 
		//create row , 
		HSSFRow row = sheet.createRow(0); 
		//create cell 
		HSSFCell cell=null;
		String[] starr={" "," "," "," "," "," "," "," "," "};
        for(int i=0;i<starr.length;i++){
        	cell = row.createCell((short)i); 
			cell.setEncoding(HSSFCell.ENCODING_UTF_16); 
			cell.setCellValue(starr[i]); 
			//System.out.print(i+1);
			//System.out.println(starr[i]);
		}

		ActionContext ctx = ActionContext.getContext(); 
        Map m=ctx.getSession();   
		List list=new ArrayList(); 
		list=(List) m.get("gettheexcel");
		for(int i=0;i<list.size();i++){
			Object[] obj=(Object[])list.get(i);
			row = sheet.createRow(i + 1); 
			for(int j=0;j<starr.length;j++){
				cell = row.createCell((short)j); 
				cell.setEncoding(HSSFCell.ENCODING_UTF_16); 
				if(j==0){
					cell.setCellValue(i+1); 
				}
				else{
					if(j==7){
						cell.setCellValue(((Date)obj[j]).toString()); 
					}
					else{
						cell.setCellValue((String)obj[j]);
					}
				}
			}						
		    System.out.println((String)obj[0]+"  "+(String)obj[1]+"  "+(String)obj[2]+"  "+(String)obj[3]+"  "+(String)obj[4]+"  "+(String)obj[1]+"  "+(String)obj[6]+"  "+((Date)obj[7]).toString()+"  "+(String)obj[8]);   
		}
		ByteArrayOutputStream os = new ByteArrayOutputStream(); 

		try { 
		// workBook  
		workBook.write(os); 
		} catch (IOException e) { 
		e.printStackTrace(); 
		} 
		//  
		byte[] content = os.toByteArray(); 
		InputStream excelStream  = new ByteArrayInputStream(content); 
		return excelStream;
    }

  
매번 하나의 기능을 완성할 때마다 사람을 기쁘게 한다.초라하게 만들었어, 어쨌든 연습이잖아.구체적인 코드는 첨부 파일 ssh_ 다운로드bbs.rar,'문장 관리'-->'lib'-->'ssb가 실행하는 가방'에 있는 부적절한 점이 있으면 여러분이 지적해 주십시오!
보: 나중에 나는 모델 드라이브로 코드를 개선하고list로 수정했다.size () = 0에 다음 페이지, 첫 페이지, currentPage = 1의 문제가 표시됩니다.변경된 코드는 첨부 파일'새.rar'에 있습니다.

좋은 웹페이지 즐겨찾기