<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 70,comments - 408,trackbacks - 0

        這些天一直在自己開發(fā)一個(gè)項(xiàng)目審計(jì)系統(tǒng),自開發(fā)項(xiàng)目真是心酸多多啊,從早上7點(diǎn)起床,到晚上11點(diǎn)睡覺.幾乎沒怎么離開電腦,處理掉了N多問題我的企業(yè)管理模塊終于出爐了.回想一下困擾我時(shí)間最長(zhǎng)的就是Struts的中文處理問題,和用<hmlt:link>標(biāo)簽傳遞頁(yè)面上用<bean:write>輸出的Bean的屬性的問題.用純Struts實(shí)現(xiàn)真是很難.這是我第一次開發(fā)項(xiàng)目,所以要把其中的酸甜苦辣都寫出來(lái).呵呵先說(shuō)說(shuō)中文問題把.我解決的時(shí)候可是遍布網(wǎng)絡(luò),通過各種方式尋找解決方案,終于工夫不負(fù)有心人我看到了一個(gè)帖子給我了極大的激發(fā).這樣解決不但可是讓Action直接接收的Form的數(shù)據(jù)就是gb2312,而且還可以讓數(shù)據(jù)庫(kù)也能很好的解決中文問題,真是一石二鳥啊哈哈!

    首先在web.xml上配置如下:

     

    <filter>

    <filter-name>Set Character Encoding</filter-name>

    <filter-class>com.huahang.tj.struts.filters.SetCharacterEncodingFilter</filter-class>

    <init-param>

    <param-name>encoding</param-name>

    <param-value>GB2312</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>

    <servlet-name>action</servlet-name>

    </filter-mapping>

     

    然后寫一個(gè)JAVA類,是一個(gè)過濾器,讓然如果自己不愛寫直接把下面的源代碼copy上也可以.

     

    package com.huahang.tj.struts.filters;

    import javax.servlet.*;

    import java.io.IOException;

     

    public class SetCharacterEncodingFilter implements Filter {

     

    protected String encoding = null;

    protected FilterConfig filterConfig = null;

    protected boolean ignore = true;

     

    public void destroy() {

    this.encoding = null;

    this.filterConfig = null;

    }

     

    public void doFilter(ServletRequest request, ServletResponse response,

    FilterChain chain)

    throws IOException, ServletException {

     

    if (ignore || (request.getCharacterEncoding() == null)) {

    String encoding = selectEncoding(request);

    if (encoding != null)

    request.setCharacterEncoding(encoding);

    }

    chain.doFilter(request, response);

    }

     

    public void init(FilterConfig filterConfig) throws ServletException {

    this.filterConfig = filterConfig;

    this.encoding = filterConfig.getInitParameter("encoding");

    String value = filterConfig.getInitParameter("ignore");

    if (value == null)

    this.ignore = true;

    else if (value.equalsIgnoreCase("true"))

    this.ignore = true;

    else if (value.equalsIgnoreCase("yes"))

    this.ignore = true;

    else

    this.ignore = false;

    }

     

    protected String selectEncoding(ServletRequest request) {

    return (this.encoding);

    }

    }

     

    配置完了.在加上了這個(gè)過濾器類就在action中就可以直接從form中接收gb2312編碼的數(shù)據(jù)了,返回時(shí)自然也是gb2312了。但是這個(gè)好像需要servlet 2.2以上的容器

    我的環(huán)境是

    windowsXp-MyEclipse4.0.3-Tomcat5.5-JDK1.5-Struts1.2

     

    還有一個(gè)問題就是

    <%@page contentType="text/html;charset=gb2312"%>

    <%@taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>

    <%@taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>

    <html:html>

      <body>

        您的帳戶是:<bean:write name="user" property="username"/>

        <br><br><br>

       <h1>歡迎使用項(xiàng)目申報(bào)管理系統(tǒng)</h1>

       <br><br>

       <html:link page="/select.do" paramId="username" paramName="user" paramProperty="username">企業(yè)信息</html:link>

      </body>

    </html:html>

     

        向上面那樣的一個(gè)簡(jiǎn)單的JSP頁(yè)面,用Struts的標(biāo)簽,<bean:write>輸出了我在別的Action里存入Session的一個(gè)Bean的屬性,這個(gè)屬性用來(lái)作會(huì)話用的.然后我想把這個(gè)屬性當(dāng)作參數(shù)加入到一個(gè)<html:link>中.方法找了N多都沒能很少的實(shí)現(xiàn),因?yàn)轫?xiàng)目要求是用純Struts寫,所以我沒用JSP代碼.最后一個(gè)朋友幫我找到了這個(gè)方法:

    <html:link page="/select.do" paramId="username" paramName="user" paramProperty="username">

        雖然看上去不怎么難,但是我以前看過的幾本Struts書和上學(xué)的時(shí)候?qū)W的Struts都沒涉及到這樣傳遞參數(shù)的方法.這樣在請(qǐng)求后面用paramId聲明一個(gè)參數(shù),要傳遞的參數(shù).然后用paramName找到一個(gè)具體的Bean,然后是具體的屬性用paramName實(shí)現(xiàn).哈哈問題就解決了.因?yàn)槭堑谝淮螌戫?xiàng)目所以我感覺自己處理問題的方法還是不夠簡(jiǎn)單明了.通過日夜奮戰(zhàn)我的項(xiàng)目的企業(yè)模塊的編碼工作也都搞定了.初步測(cè)試通過.哈哈
    posted on 2005-11-29 15:47 我心依舊 閱讀(1899) 評(píng)論(5)  編輯  收藏

    FeedBack:
    # re: Struts中文問題&&link標(biāo)簽參數(shù)問題(第一次項(xiàng)目紀(jì)念)
    2006-11-21 11:42 | mark
    html:link page="/select.do" paramId="username" paramName="user" paramProperty="username">

    你好,我也是用這種方式傳遞參數(shù), 然后通過一個(gè)actoin處理這個(gè)username ,再轉(zhuǎn)向另一個(gè)頁(yè)面, 但,這樣做后,我在action中讀取username時(shí),輸出為null,請(qǐng)問你是怎么解決的呢?

    request.getAttribute("username"); 返回為空,不知何故??

      回復(fù)  更多評(píng)論
      
    # re: Struts中文問題&&link標(biāo)簽參數(shù)問題(第一次項(xiàng)目紀(jì)念)
    2006-12-01 15:55 | zzyy163163
    樓上,不要用
    request.getAttribute("username");
    用:request.getParameter("username");   回復(fù)  更多評(píng)論
      
    # re: Struts中文問題&&link標(biāo)簽參數(shù)問題(第一次項(xiàng)目紀(jì)念)
    2006-12-22 20:46 | 聰聰
    多謝你的經(jīng)驗(yàn),真實(shí)受益匪淺呀!  回復(fù)  更多評(píng)論
      
    # re: Struts中文問題&&link標(biāo)簽參數(shù)問題(第一次項(xiàng)目紀(jì)念)
    2006-12-22 20:55 | 聰聰
    再請(qǐng)問高手一下,在action中如何得到session,我的代碼是
    HttpSession session =request.getSession(true);
    String username=(String)session.getAttribute(Constant.USER_KEY);
    String uu="";
    if(username.equals(uu)) return mapping.findForward("signtip");
    else return mapping.findForward("bid");

    運(yùn)行后說(shuō)第二句有問題 ,怎么回事???  回復(fù)  更多評(píng)論
      
    # re: Struts中文問題&&link標(biāo)簽參數(shù)問題(第一次項(xiàng)目紀(jì)念)
    2008-01-31 15:32 | NOFUYUN
    我照你的方法建了一個(gè)過濾器,配置也是和你的相同,為什么傳遞過去的還亂碼啊?

    a.jsp
    %@page contentType="text/html;charset=gb2312"%>
    <html:link page="/form/gq_play.jsp" paramId="aa" paramName="list" paramProperty="gq_adress" target="_blank">
    試聽</html:link>
    b.jsp
    %@page contentType="text/html;charset=gb2312"%>
    <%=request.getParameter("aa") %>
    不知道怎么辦了。  回復(fù)  更多評(píng)論
      

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲成A人片在线观看中文| 亚洲一区二区电影| 一个人免费视频观看在线www| 亚洲最大的成网4438| 日韩一级免费视频| 成在人线av无码免费高潮水| 亚洲天堂一区二区三区四区| 日本人护士免费xxxx视频| 花蝴蝶免费视频在线观看高清版| 成人亚洲国产va天堂| 国产成人精品久久亚洲| av无码免费一区二区三区| 色老头综合免费视频| 亚洲人成伊人成综合网久久| 亚洲人成色7777在线观看不卡 | 男女午夜24式免费视频| 亚洲欧美成aⅴ人在线观看| 亚洲欧洲日产国码av系列天堂 | av午夜福利一片免费看久久| 亚洲一级毛片中文字幕| 亚洲情XO亚洲色XO无码| 日本免费观看网站| 久久www免费人成看片| www一区二区www免费| 一本色道久久88—综合亚洲精品| 亚洲色爱图小说专区| 四虎影视永久免费观看| 91精品国产免费久久久久久青草| 国产免费网站看v片在线| 美女被爆羞羞网站在免费观看| 亚洲毛片基地4455ww| 亚洲av无码潮喷在线观看| 亚洲精品无码成人片在线观看 | 亚洲影视自拍揄拍愉拍| 国产亚洲无线码一区二区| 亚洲成a人片在线观看老师| 天天看片天天爽_免费播放| 国产精品成人免费福利| 久久青草91免费观看| 最近免费mv在线观看动漫| 一级做受视频免费是看美女|