溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請(qǐng)您在轉(zhuǎn)載時(shí)注明出處http://www.aygfsteel.com/sxyx2008/謝謝合作!!!

          雪山飛鵠

          溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請(qǐng)您在轉(zhuǎn)載時(shí)注明出處http://www.aygfsteel.com/sxyx2008/謝謝合作!!!

          BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
            215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks

          #

          Struts2整合spring時(shí)應(yīng)注意action的單實(shí)例問題
          注意要設(shè)置,action bean 的 scope 的值。因?yàn)閟pring的bean默認(rèn)為單實(shí)例singleton,故一定要設(shè)scope的值但不能為singleton。建議設(shè)置為prototype或request
          posted @ 2009-10-20 16:54 雪山飛鵠 閱讀(378) | 評(píng)論 (0)編輯 收藏

          取值要通過<s:property value="" />或在任意的<s:/>標(biāo)簽內(nèi)使用%{};

          當(dāng)Action的valueStack中有該屬性的值時(shí),只需直接使用該屬性的名字即可;

          當(dāng)Action的valueStack中沒有該屬性的值時(shí),比如在session,application范圍中的屬性值時(shí),需要加#或者#attr.;

          例子:
          假設(shè)某Action中有person成員變量,在application中存在company屬性
          那么我們可以通過以下方法取值:
          <s:property value="person.name" />
          <s:property value="#person.name" />
          <s:property value="company.name" /> //無法取到,因?yàn)閏ompany不在action的valueStack中
          <s:property value="#company.name" />

          <s:textfield name="person.name" value="person.name" /> //錯(cuò)誤,value會(huì)直接顯示person.name字樣
          <s:textfield name="person.name" value="%{person.name}" />
          <s:textfield name="person.company.name" value="%{#company.name}" />
          <s:textfield name="person.company.name" value="%{#attr.company.name}" />
          posted @ 2009-10-19 14:16 雪山飛鵠 閱讀(329) | 評(píng)論 (0)編輯 收藏

           

          最近學(xué)習(xí)struts2是一個(gè)問題接著一個(gè)問題的遇到

          剛解決了java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null entity

          接著就來最討厭的亂碼問題,我數(shù)據(jù)庫(kù)用的mysql,大家都知道mysql本省就有可能出現(xiàn)亂碼,加之現(xiàn)在跟struts2混合在一起,指不定會(huì)出現(xiàn)什么亂七八糟的編碼,這誰也說不清楚

          整體思路那就是統(tǒng)一編碼(所有的內(nèi)容都采用同一個(gè)編碼)

          大概從這幾個(gè)方面來排查

          a)         首先確認(rèn)mysql的字符編碼,他默認(rèn)為拉丁文,這里我修改為gbk

          b)        jsp頁(yè)面中明確指明編碼類型

          <%@ page language="java" contentType="text/html; charset=gbk"

          pageEncoding="gbk"%>

          上面的意思是指定tomcat的編碼為gbk

          <meta http-equiv="Content-Type" content="text/html; charset=gbk">

              下面的意思是指定web瀏覽器的編碼為gbk

          c)        習(xí)慣性的加上spring的字符過濾器

          web.xml中添加過濾器

          <filter>

                  <filter-name>CharacterEncodingFilter</filter-name>

              <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

                  <init-param>

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

                      <param-value>gbk</param-value>

                  </init-param>

                  <init-param>

                      <param-name>forceEncoding</param-name>

                      <param-value>true</param-value>

                  </init-param>

              </filter>

              <filter-mapping>

                  <filter-name>CharacterEncodingFilter</filter-name>

                  <url-pattern>/*</url-pattern>

              </filter-mapping>

          d)        最后別忘了在struts.xmlstruts.properties中覆蓋struts2默認(rèn)國(guó)際化的編碼格式

          <constant name="struts.i18n.encoding" value="gbk"></constant>

          到此編碼應(yīng)該已經(jīng)統(tǒng)一為gbk了,看看結(jié)果吧

          其實(shí)最簡(jiǎn)單的放法就是把數(shù)據(jù)庫(kù)和jsp中的編碼統(tǒng)一設(shè)置為utf-8即可

          posted @ 2009-10-19 14:08 雪山飛鵠 閱讀(490) | 評(píng)論 (0)編輯 收藏

           

          今天在寫struts2 save的時(shí)候報(bào)了這么一個(gè)異常

          java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null entity

              at org.hibernate.event.SaveOrUpdateEvent.<init>(SaveOrUpdateEvent.java:40)

              at org.hibernate.event.SaveOrUpdateEvent.<init>(SaveOrUpdateEvent.java:23)

              at org.hibernate.impl.SessionImpl.save(SessionImpl.java:518)

              at org.hibernate.impl.SessionImpl.save(SessionImpl.java:514)

          從上面的異常信息可以看出是在Hibernate進(jìn)行save的時(shí)候檢測(cè)到beannull

          1)        大致從這幾個(gè)方面來分析原因:

          2)        Hibernate(*.hbm.xml)映射文件是否錯(cuò)誤

          3)        DAO層代碼是否錯(cuò)誤

          4)        檢查Action及視圖層jsp頁(yè)面等

          從上面幾個(gè)逐個(gè)檢查后得出的結(jié)論為第四條

          首先看Action中的代碼

          private Employee employee;

              public Employee getEmployee() {

                  returnemployee;

              }

              publicvoid setEmployee(Employee employee) {

                  this.employee = employee;

              }

          這里employee是我們觀察的重點(diǎn)

          再看jsp中的代碼

          <s:form action="saveEmployee.action">

                  <s:textfield name="empName" label="empName"></s:textfield>

                  <s:textfield name="age" label="age"></s:textfield>

                  <s:textfield name="sex" label="sex"></s:textfield>

                  <s:textfield name="context" label="context"></s:textfield>

                  <s:submit value="注冊(cè)" theme="simple"></s:submit>

                  <s:reset value="取消" theme="simple"></s:reset>

          </s:form>

          大家注意<s:textfield/>name屬性的值

          很顯然錯(cuò)誤發(fā)生在此處修改如下即可:

          <s:form action="saveEmployee.action">

                  <s:textfield name="employee.empName" label="empName"></s:textfield>

                  <s:textfield name="employee.age" label="age"></s:textfield>

                  <s:textfield name="employee.sex" label="sex"></s:textfield>

                  <s:textfield name="employee.context" label="context" value=""></s:textfield>

                  <s:submit value="注冊(cè)" theme="simple"></s:submit>

                  <s:reset value="取消" theme="simple"></s:reset>

              </s:form>

          由此我們得出的結(jié)論是:

          jsp頁(yè)面中一定要保持頁(yè)面中各個(gè)控件的name屬性與Action中模型驅(qū)動(dòng)對(duì)象的名字一致否則就會(huì)報(bào)錯(cuò)

          posted @ 2009-10-19 11:39 雪山飛鵠 閱讀(27979) | 評(píng)論 (19)編輯 收藏

          僅列出標(biāo)題
          共22頁(yè): First 上一頁(yè) 14 15 16 17 18 19 20 21 22 
          主站蜘蛛池模板: 阿尔山市| 互助| 崇左市| 合作市| 武清区| 长岛县| 定边县| 南通市| 日土县| 上思县| 同江市| 乐至县| 元江| 大悟县| 南召县| 平武县| 思茅市| 黄龙县| 大厂| 肥东县| 恩平市| 南丰县| 嘉定区| 东山县| 浦城县| 正安县| 彝良县| 上思县| 繁峙县| 姚安县| 余江县| 梧州市| 岢岚县| 莒南县| 会宁县| 瑞金市| 邵东县| 尼玛县| 汶上县| 濮阳县| 兴业县|