Loading...

          java .net

          開(kāi)始學(xué)習(xí)struts2(三)

          struts2局部類(lèi)型轉(zhuǎn)換

          需求為:在頁(yè)面的文本框輸入一個(gè)x、y坐標(biāo),之間用","隔開(kāi),Action中有一個(gè)Point類(lèi)型的屬性,Point類(lèi)里面有兩個(gè)字段,分別是x,y,int型,要求當(dāng)頁(yè)面提交時(shí)將文本框中的字符串轉(zhuǎn)換成Point對(duì)象,當(dāng)Action返回到頁(yè)面時(shí)將Point轉(zhuǎn)換成字符串顯示

          1、首先做一個(gè)jsp用于輸入和提交:point.jsp

          <s:form action="Converter">
          <s:textfield name="point" label="Point"></s:textfield>
          <s:textfield name="point.x" label="Point.X"></s:textfield>
          <s:textfield name="point.y" label="Point.Y"></s:textfield>
          <s:submit label="submit"></s:submit>
          </s:form>

          2、再建一個(gè)用于顯示的jsp-converter.jsp

          <body>
          <s:property value="point"/><br>
          <s:property value="point.x"/><br>
          <s:property value="point.y"/><br>
          </body>

          3、Action類(lèi) ConverterAction

          public class ConverterAction extends ActionSupport{

          private Point point;

          public Point getPoint() {
          return point;
          }

          public void setPoint(Point point) {
          this.point = point;
          }

          public String execute()throws Exception {
          return "success";
          }
          }

          4、struts.xml

          <action name="Converter"
          class="com.test.struts2.action.ConverterAction">
          <result name="success">/converter.jsp</result>
          <result name="input">/point.jsp</result>
          </action>

          5、轉(zhuǎn)換類(lèi) ConverterPoint

          public class ConverterPoint extends DefaultTypeConverter {

          @Override
          public Object convertValue(Map context, Object value, Class toType) {
          if(Point.class == toType){
          String[] params = (String[])value;
          params = params[0].split(",");
          Point point = new Point();
          point.setX(Integer.parseInt(params[0]));
          point.setY(Integer.parseInt(params[1]));
          return point;

          }else if(String.class == toType){
          Point point = (Point)value;
          return "x=" + point.getX() + ",y=" + point.getY();
          }
          return super.convertValue(context, value, toType);
          }


          }

          6、配置轉(zhuǎn)換
          在ConverterAction 類(lèi)的同一目錄下定義屬性文件ConverterAction-conversion.properties,注意文件名,-conversion.properties為固定不變,ConverterAction為Action的名字,文件內(nèi)容:

          point=com.test.struts2.action.ConverterPoint

          Ok了,這樣就完工了

          posted on 2009-01-05 13:12 閱讀(292) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 學(xué)習(xí)java

          公告

          希望有一天

          我能用鼠標(biāo)雙擊我的錢(qián)包

          然后選中一張100元

          按住“ctrl+c”

          接著不停的“ctrl+v”

          嘻嘻~~~笑醒~~~



          導(dǎo)航

          <2009年1月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          統(tǒng)計(jì)

          常用鏈接

          留言簿(6)

          隨筆分類(lèi)(102)

          隨筆檔案(398)

          文章分類(lèi)

          文章檔案(10)

          有趣網(wǎng)絡(luò)

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 墨竹工卡县| 沿河| 咸丰县| 家居| 息烽县| 贵港市| 阿克苏市| 平利县| 疏附县| 广昌县| 海晏县| 崇明县| 社会| 常熟市| 昌都县| 丹棱县| 息烽县| 章丘市| 娄底市| 漯河市| 读书| 丹棱县| 腾冲县| 当涂县| 东乌珠穆沁旗| 秦皇岛市| 长子县| 独山县| 肥乡县| 金平| 炎陵县| 石泉县| 邮箱| 大安市| 湄潭县| 介休市| 池州市| 左贡县| 洛川县| 都匀市| 遵义市|