liuquanqi

          java

          常用鏈接

          統(tǒng)計(jì)

          最新評(píng)論

          webwork 中文亂碼問題 表單字段驗(yàn)證 標(biāo)簽的用法

          1.WebWork中文問題解決:?
          a)在webwork.properties文件中,添加:?
          webwork.i18n.encoding?=?UTF-8?
          它主要是用來設(shè)置WebWork?UI標(biāo)簽庫(kù)的編碼,?
          要保持你的頁(yè)面和編碼與你在encoding設(shè)置的一致,否則重復(fù)編碼出現(xiàn)亂碼.?
          如果不設(shè)置它將通過System.getProperty("file.encoding"來獲取默認(rèn)字符編碼。
          ?
          PS:2.1.6版本中存在BUG,不能夠使用定義的encoding.?

          b)寫一個(gè)Filter,將編碼設(shè)置為UTF-8。?
          例如SetCharacterEncodingFilter。它解決Action數(shù)據(jù)傳遞時(shí)的編碼,但是不能解決屬性在Action或是Model賦值的編碼.?
          c)velocity.properties文件中,添加:?
          input.encoding=UTF-8?
          output.encoding=UTF-8?
          default.contentType=text/html;?charset=UTF-8?
          它是用來設(shè)置.vm頁(yè)面的編碼方式.?

          d)使用freemarker作為view層,可以再web.xml中指定字符屬性;

          <servlet>
          ????????<servlet-name>freemarker</servlet-name>
          ????????<servlet-class>com.opensymphony.webwork.views.freemarker.FreemarkerServlet</servlet-class>
          ????????<!--?FreemarkerServlet?settings:?-->
          ????????<init-param>
          ????????????<param-name>TemplatePath</param-name>
          ????????????<param-value>/templates/</param-value>
          ????????</init-param>
          ????????<init-param>
          ????????????<param-name>NoCache</param-name>
          ????????????<param-value>true</param-value>
          ????????</init-param>
          ????????<init-param>
          ????????????<param-name>ContentType</param-name>
          ????????????<param-value>text/html</param-value>
          ????????</init-param>
          ???????<!--????????指定編碼?????????-->
          ????????<init-param>
          ????????????<param-name>default_encoding</param-name>
          ????????????<param-value>UTF-8</param-value>
          ????????</init-param>

          ????????<init-param>
          ????????????<param-name>number_format</param-name>
          ????????????<param-value>0.##########</param-value>
          ????????</init-param>
          ????????<load-on-startup>1</load-on-startup>
          ????</servlet>

          2.WebWork表單字段驗(yàn)證:?
          a)Action必須繼承ActionSurport;?
          b)在xwork.xml文件必須定義?
          <action?name="hello"?class="test.HelloAction">?
          ???<result?name="success">/result.jsp</result>????
          ???<result?name="input">?
          ????????<param?value="/location">/index.jsp</param>?
          ???</result>???
          ???<interceptor-ref?name="validationWorkflowStack"/>?
          </action>?
          其中input?是必須定義的,另外要使用?
          <param?value="location">/index.jsp</param>?
          才可以在驗(yàn)證錯(cuò)誤后回到輸入頁(yè)面。
          ?
          c)在Action類名-validation.xml文件必須與Action類在同一目錄下,?
          d)定義的<message/>元素,當(dāng)提示消息為中文時(shí)候必須在文件頭定義:?
          <?xml?version="1.0"?encoding="GBK"?>?

          3.WebWork的標(biāo)簽的用法:?
          a)需要提交的表單項(xiàng)name屬性值均為常量,因此均以單引號(hào)包圍,以與Model中的變量相匹配,

          <ww:form?namespace="'/test'"?action="'ftltest'"?method="'POST'">
          ???????????????<ww:textfield?name="'msg'"?label="消息"></ww:textfield>
          ???????????????<ww:submit?value="/提交"?/>
          ????</ww:form>
          b)<ww:radio/>和<ww:select/>標(biāo)簽中的list的屬性可以使用Map類型,以key和value對(duì)應(yīng)listKey,listValue屬性.

          第一種寫法:

          <ww:select?label="'Months'"?
          ????????name="'months'"?
          ????????????list="#{'01':'Jan',?'02':'Feb',?[]}"?
          ????????value="/01"
          ????????required="true"?
          />

          第二種寫法:

          <ww:select?label="'Pets'"?
          ????????name="'petIds'"?
          ????????list="petDao.pets"?
          ????????listKey="id"?
          ????????listValue="name"?
          ????????multiple="true"?
          ????????size="3"?
          ????????required="true"?
          />

          <!--petDao.pets為普通對(duì)象,使用其id為KEY,name為value-->
          <!--如果petDao.pets為Map類型,則可省略listKey和listValue屬性-->

          c)WebWork2中的UI標(biāo)簽的模板定制,可以在webwork.properties文件中指定相關(guān)屬性,并且定制模板文件;

          webwork.ui.theme=xhtml?????//可用的theme還有simple;
          webwork.ui.templateDir=template????//模板路徑;
          #sets?the?default?template?type.?Either?vm?or?jsp
          webwork.ui.templateSuffix=vm???//模板類型,還支持JSP模板,開發(fā)可以使用FreeMarker定制模板;


          4.WebWork的國(guó)際化使用:?
          a)<ww:i18?name="'message'">?
          ????????<ww:text?name="'key'"/>?
          ??</ww:i18>?
          使用message_zh_CN.properties中包含key=****;?

          b)在Action中的getText()方法資源來自Action的類名.properties

          c)在Action中可以使用getTexts()獲得具體的ResourceBundle;

          d)在view層一樣可以使用getText()方法;


          ????????<ww:i18n?name="'messages'">
          ????????????<!--在messages.properties文件中有key->index_msg-->????????
          ????????????????<ww property?value="getText('index_msg')"/>
          ????????</ww:i18n>

          posted on 2007-03-19 11:18 ☆℡齊 閱讀(2194) 評(píng)論(0)  編輯  收藏 所屬分類: java


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 曲松县| 陆川县| 克东县| 吉木萨尔县| 新化县| 出国| 郴州市| 尼木县| 临夏县| 诏安县| 平果县| 钦州市| 个旧市| 彰化县| 石林| 宜川县| 巴楚县| 华阴市| 诸城市| 苏尼特右旗| 泽州县| 三原县| 无为县| 沙田区| 平邑县| 湾仔区| 新乡市| 英吉沙县| 湘潭市| 道真| 赣榆县| 丹凤县| 武安市| 南阳市| 乐业县| 乐山市| 毕节市| 陆良县| 攀枝花市| 鹿泉市| 二连浩特市|