struts2的學習記錄

[size=large]1.struts2的選項卡標籤"tabbedpanel"[/size]
感覺很好用的,下面是相關的代碼:

<%@ page contentType="text/html;charset=GBK" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>tabbled panel示例:簡單tabbled panel</title>
<s:head theme="ajax" debug="true"/>
<link rel="stylesheet" type="text/css" href="<s:url value="/struts /tabs.css"/>">
</head>
<body>
簡單Tab頁面,doLayout屬性設置是否使用固定高度<br>
<s:tabbedPanel id="tab1" theme="ajax" cssStyle="width: 400px; height: 240px;" doLayout="true">
<s:div id="left" label="第一個Tab頁" theme="ajax" >
hello<br>
dandan<br>
</s:div >
<s:div id="middle" label="第二個Tab頁" theme="ajax" >
<h3>我的博客</h3>
哈哈哈哈哈哈哈<br>
</s:div >
</s:tabbedPanel>
</body>
</html>

[size=large]2. 有關struts2中的編碼方式:[/size]
其實知道了也挺簡單的,不過剛接觸的時候還是費了不少功夫的,一般我是用GBK方式設置的,
你只需要在你的struts.xml裏面加上如下的一句話" <constant name="struts.i18n.encoding" value="GBK"></constant>" 這一句話就是設置在struts2中跳轉過程中使用的編碼方式,這樣以後,基本上如果你要是每個jsp頁面都用GBK設置編碼以後,即使表單中包括漢字,傳遞到相應action的時候也不會出現亂碼了

[color=red][size=large]3.在struts2中的jsp頁面中獲取其他由其他java類提供的屬性;[/size][/color]
我這裏的意思是:比如有show.action要跳轉到show.jsp.此時show.jsp中需要某一個變量的值,但是show.action並沒有把這個值傳給show.jsp。這時我們就需要引用其他的java類對象來獲取相應的值,比如說:我們通過show.action把一個人的基本信息傳給show.jsp,然後再show.jsp顯示一個人的基本信息,然後你可以修改這個人的基本信息,假如說有一項信息是選擇一個人的性別信息(這個人是男還是女),並且這個信息是需要從數據庫中讀取出來顯示的,此時我們需要在jsp頁面中把所有從數據庫中取出的性別信息都顯示出來,並且還要選中傳過來的這個人的性別信息;這個時候其實就可以引用其他頁面的對象了。
加入數據庫中有數據:1.男 2.nv 3.外星人
我們定義一個SexType類裏面有屬性ID和type;
然後我們定義一個類ShowType.java
在showType.java類中,定義一個private static類型的list變量SexList。注意,變量一定要是static類型的,並且一定要定義變量的get和set方法,否則的話你就在jsp頁面裏面取不到這個變量的值.同時在這裏面定義一個返回值爲String類型的方法,這個方法就是這個action的執行方法.我在這裏定義爲public String showListType() throws Exception{
/***********
這裏面寫從數據庫獲取性別信息然後保存在list鏈表中的代碼
*************/

/////返回值是NULL
return NULL;
}

然後下面是這個類的代碼
import com.ysg.impl.SexImpl;
import java.util.*;
public class ShowType {

private static List<SexType> Ssex=new ArrayList<SexType>();

public String getAllSexType(){

/**
下面的這個是另外一個類裏面寫的用來獲取所有的對象,很簡單,你自己 編寫以下就可以了,我在這裏就不寫了
**/
Ssex=SexImp.getAllSexType();
return null;
}

public static List<SexType> getSsex() {
return Ssex;
}
public static void setSsex(List<SexType> ssex) {
Ssex = ssex;
}

}


然後下面就需要在struts.xml中聲明這個類了:
<action name="SexTypeShow" class="com.hr.ysg.action.ShowType" method="getAllSexType">
</action>

這樣然後在jsp頁面中就可以使用了.
在jsp頁面中,需要先把這個action引入到這個頁面中
<ww:action name="SexTypeShow" id="SexSel" ></ww:action>

然後你就可以使用這個action了
假如說通過action傳到show.jsp頁面的有關性別的參數叫yoursex
如果你想在radio中顯示所有有關性別的標籤並且是選中你的性別標籤
下面是jsp中的語句:
<ww:radio list="#SexSel.Ssex" listKey="ID" listValue="type" value="%{yoursex}" name="radioSex"></ww:radio>
這樣就可以了
其中list表示是要在所有的radio中藥顯示的列表:在這裏,我們有三項:男,女,外星人
listKey標籤標識每個radio的key值,寫過html的form的人應該都知道,radio顯示的是value。但是後面隱藏的是key,在這裏。由於上面數據庫裏面定義的是:1.男 2.nv 3.外星人
所以listkey就是1.2.3
listvalue就是 男,女,外星人;
value標籤就是指你現在選中的是哪一個標籤,如果說通過show.action傳過來的yoursex的值是“男”,則選中的是對應key是“1”顯示值是“男”的radio,否則顯示其他相應的radio標籤
然後這樣就可以了
這樣很省力氣的。也非常的方便
如果還有不懂就留言了
呵呵
大家一起加油
一起進步
[color=red][size=large](注:當然了,也可以用bean標籤來做的,而且我感覺應該是用bean標籤更好.)[/size][/color]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章