我來解決手機(jī)電池問題 :
工具----設(shè)置------網(wǎng)絡(luò)設(shè)置-------運(yùn)營(yíng)商選擇------
手動(dòng)
-------選擇你使用的運(yùn)營(yíng)商------ok??。這樣大概要待機(jī)多1/3時(shí)間
http://looline.blogspot.com/
今天在試驗(yàn)了一下在Struts-config中配置數(shù)據(jù)源,雖然說這種方法并不推薦,
操作步驟:
????? 首先導(dǎo)入幾個(gè)需要的包:首先自己連接數(shù)據(jù)庫(kù)用的包,因?yàn)槲矣玫氖荕ysql所以用的是“mm.mysql-2.0.4-bin.jar”,還有“commons-dbcp-1.2.1.jar”這個(gè)是數(shù)據(jù)源中要用到的包,還有“commons-pool-1.2.jar”這個(gè)不太清楚
???? 其次在Struts-config.xml中加入如下代碼
????<data-sources>
????????<data-source?key="rki"?type="org.apache.commons.dbcp.BasicDataSource">? //type代表類,rki表示當(dāng)有多個(gè)數(shù)據(jù)源時(shí)相
//當(dāng)于一個(gè)索引,id值
????????????<set-property?property="driverClassName"?value="org.gjt.mm.mysql.Driver"?/>//連接mysql所需的類庫(kù)
????????????<set-property?property="url"?value="jdbc:mysql://172.20.0.40:3306/test?useUnicode=true&characterEncoding=GBK"?/>
????????????<set-property?property="username"?value="root"?/>
????????????<set-property?property="password"?value="你的密碼"?/>
????????????<set-property?property="maxActive"?value="10"?/>
????????????<set-property?property="maxWait"?value="500"?/>
????????????<set-property?property="defaultAutoCommit"?value="false"?/>
????????????<set-property?property="defaultReadOnly"?value="false"?/>
????????</data-source>
????</data-sources>然后現(xiàn)在就可以在你的Action試驗(yàn)數(shù)據(jù)庫(kù)的連接,簡(jiǎn)單引用的代碼片斷
datasource?=?getDataSource(request,?"rki");
????????????conn?=?datasource.getConnection();
????????????Statement?state?=?conn.createStatement();
????????????System.out.println("hello");
????????????String?sql?=?"select?*?from?notice?where?title='test'";
????????????ResultSet?rs?=?state.executeQuery(sql);

????????????while?(rs.next())?
{
????????????????request.getSession().setAttribute("cont",
????????????????????????rs.getString("content"));
????????????????System.out.println("database?connect?true");
????????????}
????????????rs.close();在試驗(yàn)的過程中,老是不能連接,出“Initializing application data source”我仔細(xì)檢查過以上的配置并沒有問題,重啟了幾次服務(wù)器也不行,查了N多資料,最后居然自己好了,郁悶的要死
一點(diǎn)總結(jié),
?????????? 可見在Struts中配置數(shù)據(jù)源要比別的連接方法要復(fù)雜,而且效率上來說也不一定要好,還不如自己通過自己編寫簡(jiǎn)單的訪問數(shù)據(jù)庫(kù)的類,或者是直接采用Tomcat的數(shù)據(jù)源要方便 一些。
在Struts中可以通過<html:errors/>來顯示錯(cuò)誤信息,今天簡(jiǎn)單看了一點(diǎn),總結(jié)一下:
1)如果是采用了formbean的validate的話,首先,struts-config.xml中Action需要加入validate="true"
??????其實(shí),在Actionform中的validate必須返回一個(gè)自己定義的Actionerrors,如例:
????public?ActionErrors?validate(ActionMapping?mapping,

????????????HttpServletRequest?request)?
{
????????ActionErrors?errors?=?new?ActionErrors();

????????if?(this.content.equals(""))?
{
????????????errors.add("content",?new?ActionError("error.user"));
????????}
????????return?errors;
????}2)如果沒有采用,而是用Action驗(yàn)證的話,也需要先定義一個(gè)Actionerrors,然后再通過
saveErrors(request,errors);把Actionerrrors保存到request中
3)需要注意的
? a,每個(gè)ActionErrors都有一個(gè)String,和一個(gè)ActionError構(gòu)成,ActionError里面的String是和項(xiàng)目資源文件里的一一對(duì)應(yīng)的,String是和html:errors中property相對(duì)應(yīng)的。
這就是在前面的簡(jiǎn)單應(yīng)用中,在view中,通過<bean:write name="myform" property="name">調(diào)用Actionform時(shí)出的問題,這個(gè)問題的直接原因很簡(jiǎn)單就是:找不到"myform"這個(gè)Bean,用網(wǎng)上的話說就是“在Action里一般會(huì)request.setAttribute()一些對(duì)象,然后在轉(zhuǎn)向的jsp文件里(用tag或request.getAttribute()方法)得到這些對(duì)象并顯示出來。這個(gè)異常是說jsp要得到一個(gè)對(duì)象,但前面的Action里并沒有將對(duì)象設(shè)置到request(也可以是session、servletContext)里。可能是名字錯(cuò)了,請(qǐng)檢查jsp里的tag的一般是name屬性,或getAttribute()方法的參數(shù)值;或者是Action邏輯有問題沒有執(zhí)行setAttribute()方法就先轉(zhuǎn)向了。
還有另外一個(gè)可能,純粹是jsp文件的問題,例如<logic:iterate>會(huì)指定一個(gè)id值,然后在循環(huán)里<bean:write>使用這個(gè)值作為name的值,如果這兩個(gè)值不同,也會(huì)出現(xiàn)此異常。(都是一個(gè)道理,request里沒有對(duì)應(yīng)的對(duì)象。)”。
??????我對(duì)Actionform的機(jī)制不理解,心中的疑問:
??????1)如果ActionForm是Struts自動(dòng)封裝到Request中,那么我可以直接在view.jsp中,能過<bean:write>調(diào)用這個(gè)ActionForm,如果假設(shè)這種情況成立時(shí),那么Beanwrite中的bean名應(yīng)該是ActionForm的類名,還是在Struts-config.xml里給ActionForm定義的類名?
????? 2)如果沒有封裝的話,那么是不是需要在Action中把Actionform通過request.setAttribute("","")放到request中
還是要放到Session中,
????? 我測(cè)試時(shí)候出的問題
?????? 有一次就是在1)的情況下測(cè)試成功的,但是以后再怎么試都不行,那次是引用的Struts-config.xml里給ActionForm定義的類名。非常奇怪,
????????還有就是2)的情況,測(cè)試中如果Action和Frombean在一個(gè)包下面,那么通過request.setAttribute("",""),就可以獲取到Bean,如果不是的話,有時(shí)候行,有時(shí)候不行,
??????? 如果通過request.getSession.setAttribute()設(shè)置ActionForm的話,每次都可以,他們的Scope肯定在一個(gè)Request中,那么為什么Session就可以,而Request不行。(結(jié)論:因?yàn)槭窃贏ctionfoward中設(shè)置了“redirect='true',這樣的話一跳轉(zhuǎn)時(shí),Request中的內(nèi)容都會(huì)被重置,所以不行,把這一句去掉就可以了”)
1、簡(jiǎn)介
????????????簡(jiǎn)單的頁(yè)面輸入并顯示的功能,有兩個(gè)頁(yè)面,
????????????upnews.jsp 提供輸入內(nèi)容的界面,show.jsp顯示已經(jīng)輸入的內(nèi)容
2、源碼
??????
struts-config,流程圖

源代碼
Strust-config.xml
<form-bean?name="upNewsForm"?type="com.rkind.struts.form.UpNewsForm"?/>
????????<action?attribute="upNewsForm"?input="/upNews.jsp"?name="upNewsForm"?path="/upNews"?scope="request"?type="com.rkind.struts.action.UpNewsAction">
????????????<forward?name="suc"?path="/show.jsp"?redirect="true"?/>
????????</action>
upnews.jsp
???? 都是eclispe自動(dòng)生成的
<html:form?action="/upNews">
????????????content?:?<html:text?property="content"/><html:errors?property="content"/><br/>
????????????<html:submit/><html:cancel/>
????????</html:form>
show.jsp這個(gè)簡(jiǎn)單就一句話,
<bean:write?name="upNewsForm"?property="content"/>
模型的部分 formbean,自動(dòng)生成,未做改動(dòng)
Controller部分,核心啊
UpNewsForm?upNewsForm?=?(UpNewsForm)?form;
????????//?TODO?Auto-generated?method?stub
????????String?te=upNewsForm.getContent();

????????try
{

????????if(te.equals(""))
{
????????????return?new?ActionForward(mapping.getInput());????????
????????}
????????return?(mapping.findForward("suc"));

????????}catch(Exception?e)
{
????????????throw?new?RuntimeException(e.getMessage());好了,但是在測(cè)試的時(shí)候一直出問題,輸入以后不能正常,原因有2
1、在鏈接時(shí)候,沒有加“/”導(dǎo)致不能正常連接
2、
forward?name="suc"?path="/show.jsp"?redirect="true"?起初沒有加redirect,不能跳轉(zhuǎn)。