頁面代碼:
<!--? 這個是顯示的多選框頁面 已有的角色要打勾,可以重新選擇角色-->
<form action="<c:url value="/sys/userRolesEdit.htm"/>" method="post" >
????? <table class="grid" width="100%" cellspacing="1">
?????
??? <tr>
?????? <td colspan="6" class="title">
????????? 角色列表
?????? </td>
??? </tr>
??? <tr>
??? ? <td class="column"></td>
?????? <td class="column">角色ID</td>
?????? <td class="column">角色名</td>
?????? <td class="column">角色代碼</td>
?????? <td class="column">角色描述</td>??????
??? </tr>
??? <!-- 循環顯示列表userRoles的每一項,并判斷如果數據庫中已有的打勾<c:if test標簽正確才執行中間的代碼-->
??? <c:forEach items="${roles}" var="item">????
???<tr>??????
???? <td>
???? <input type="checkbox" name="rolesId" <c:forEach items="${userRoles}" var = "selectedRoles">
???? <c:if test="${item.srolId == selectedRoles.srolId}">checked="true"</c:if></c:forEach>
????? value="<c:out value="${item.srolId}"/>" />
???? </td>
???
???? <td><c:out value="${item.srolId}"/></td>
??????? <td><c:out value="${item.srolName}"/> </td>
???????????????? <td><c:out value="${item.srolCode}"/></td>
???????????????? <td><c:out value="${item.srolDesc}"/></td>????????????????
???? <tr>???????
??? </c:forEach> ??
???
??? <tr>
?????? <td colspan="6" class="nav">
?????? ??? <input type="hidden" name="userID"
???value=<c:out value="${userInfo.suinId}"/>>
????? <input type="submit" class="button3" value="提交"/>
????? <INPUT type="button" class="button2" value="返回" onclick="history.back()" />
?????
?????? </td>
??? </tr>
?? </table>?
?? </form>
控制器代碼:
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
??// TODO Auto-generated method stub
??
??Map result = new HashMap();
??
??SysUserinfo userInfo = null;
??????? String id = request.getParameter("userID");
??????? System.out.println(id);
??????? if (id != null && !id.equals(""))
??????? {
??????????? userInfo = (SysUserinfo) sysService.get(SysUserinfo.class,
??????????????????? new Long(id));
???????????
??????? }
??????? else
??????? {
???????????
??????? }
???????
??????? result.put("userInfo", userInfo);
??????? result.put("roles", sysService.getSupportData("SysRole", null));
??????? if (userInfo != null)
??????? {
??????? ?result.put("userRoles", sysService.getUserRoles(userInfo));
??????? }
???????
?
???????
??????? SysUserRole sysUserRole = null;
??????? SysRole sysRole = null;
??????? String roleId = null;
???????
??????? // 記錄父列表ID
??????? result.put("parentlistID", request.getParameter("parentlistID"));
??????? result.put("userInfo", userInfo);
????????
?????????//遍歷所有map里的key
??????? Iterator it = result.keySet().iterator();
??????? while (it.hasNext())
??????? {
??????????? String key = (String) it.next();
??????????? request.setAttribute(key, result.get(key));
??????? }
????????
?????????//這里就是從列表多選框傳過來的數值。根據name屬性獲得所有的value
??????? String[] rolesId = null;
??????? rolesId = request.getParameterValues("rolesId");
??????? System.out.println("------------------------" + rolesId + "-------------------");
???????
??????? if (rolesId == null || rolesId.equals(null))
??????? {
??????? ?return new ModelAndView(formView);
??????? }
???????
??????? else
??????? {?????
??????? ?List userRoles = (List)sysService
??????? ??.getUsersUserRoles(userInfo.getSuinId());
??????//先刪除數據庫中所有的,再插入所選的值
?????????for (int k = 0; k < userRoles.size(); k++)
??? ??{
??? ???SysUserRole userRole = (SysUserRole)userRoles.get(k);?? ???
??? ???sysService.delete(userRole);
??? ???
??? ??}
??????? ?
??????? ?for (int i = 0; i < rolesId.length; i++)
??????? ?{
??????? ??roleId = rolesId[i];
??????? ??
??????? ??sysRole = (SysRole)sysService.get(SysRole.class, new Long(roleId));
??????? ??sysUserRole = new SysUserRole();
??????? ??sysUserRole.setUser(userInfo);
??????? ??sysUserRole.setRole(sysRole);
??????? ??sysService.save(sysUserRole);?????? ?
??????? ?}
?????????//如果在###-servlet.xml配置文件中,successView不能傳遞參數,可在這里直接有response導向別的頁面
?????????response.sendRedirect(request.getContextPath()
??????? ???+ "/sys/userRolesList.htm?userID=" + userInfo.getSuinId().toString());
??????? ?return null;
??????? }
?}
String s = new String("The Java platform is the ideal platform for network computing");
StringTokenizer st = new StringTokenizer(s);
System.out.println( "Token Total: " + st.countTokens() );
while( st.hasMoreElements() ){
System.out.println( st.nextToken() );
}
結果為:
Token Total: 10
The
Java
platform
is
the
ideal
platform
for
network
computing
String s = new String("The=Java=platform=is=the=ideal=platform=for=network=computing");
StringTokenizer st = new StringTokenizer(s,"=",true);
System.out.println( "Token Total: " + st.countTokens() );
while( st.hasMoreElements() ){
System.out.println( st.nextToken() );
}
結果為:
Token Total: 19
The
=
Java
=
platform
=
is
=
the
=
ideal
=
platform
=
for
=
network
=
computing
java.util.*;
public class ShowDate {
public static void main(String[] args) {
Calendar calendar = new GregorianCalendar();
Date trialTime = new Date();
calendar.setTime(trialTime);
// print out a bunch of interesting things
System.out.println("ERA: " + calendar.get(Calendar.ERA));
System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
System.out.println("MONTH: " + calendar.get(Calendar.MONTH));
System.out.println("WEEK_OF_YEAR: " + calendar.get(Calendar.WEEK_OF_YEAR));
System.out.println("WEEK_OF_MONTH: " + calendar.get(Calendar.WEEK_OF_MONTH));
System.out.println("DATE: " + calendar.get(Calendar.DATE));
System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
System.out.println("DAY_OF_YEAR: " + calendar.get(Calendar.DAY_OF_YEAR));
System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));
System.out.println("DAY_OF_WEEK_IN_MONTH: " + calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));
System.out.println("HOUR: " + calendar.get(Calendar.HOUR));
System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));
System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
System.out.println("ZONE_OFFSET: " + (calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000)));
System.out.println("DST_OFFSET: " + (calendar.get(Calendar.DST_OFFSET)/(60*60*1000)));
System.out.println("Current Time, with hour reset to 3");
calendar.clear(Calendar.HOUR_OF_DAY); // so doesn't override
calendar.set(Calendar.HOUR, 3);
System.out.println("ERA: " + calendar.get(Calendar.ERA));
System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
System.out.println("MONTH: " + calendar.get(Calendar.MONTH));
System.out.println("WEEK_OF_YEAR: " + calendar.get(Calendar.WEEK_OF_YEAR));
System.out.println("WEEK_OF_MONTH: " + calendar.get(Calendar.WEEK_OF_MONTH));
System.out.println("DATE: " + calendar.get(Calendar.DATE));
System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
System.out.println("DAY_OF_YEAR: " + calendar.get(Calendar.DAY_OF_YEAR));
System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));
System.out.println("DAY_OF_WEEK_IN_MONTH: " + calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));
System.out.println("HOUR: " + calendar.get(Calendar.HOUR));
System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));
System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
System.out.println("ZONE_OFFSET: " + (calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000))); // in hours
System.out.println("DST_OFFSET: " + (calendar.get(Calendar.DST_OFFSET)/(60*60*1000))); // in hours
}
}
import java.text.DateFormat;
import java.util.*;
public class JspCalendar {
??? Calendar? calendar = null;
??? public JspCalendar() {
?calendar = Calendar.getInstance();
?Date trialTime = new Date();
?calendar.setTime(trialTime);
??? }
??? public int getYear() {
?return calendar.get(Calendar.YEAR);
??? }
???
??? public String getMonth() {
?int m = getMonthInt();
?String[] months = new String [] { "January", "February", "March",
?????"April", "May", "June",
?????"July", "August", "September",
?????"October", "November", "December" };
?if (m > 12)
???? return "Unknown to Man";
?
?return months[m - 1];
??? }
??? public String getDay() {
?int x = getDayOfWeek();
?String[] days = new String[] {"Sunday", "Monday", "Tuesday", "Wednesday",
????????? "Thursday", "Friday", "Saturday"};
?if (x > 7)
???? return "Unknown to Man";
?return days[x - 1];
??? }
???
??? public int getMonthInt() {
?return 1 + calendar.get(Calendar.MONTH);
??? }
??? public String getDate() {
?return getMonthInt() + "/" + getDayOfMonth() + "/" +? getYear();
??? }
??? public String getTime() {
?return getHour() + ":" + getMinute() + ":" + getSecond();
??? }
??? public int getDayOfMonth() {
?return calendar.get(Calendar.DAY_OF_MONTH);
??? }
??? public int getDayOfYear() {
?return calendar.get(Calendar.DAY_OF_YEAR);
??? }
??? public int getWeekOfYear() {
?return calendar.get(Calendar.WEEK_OF_YEAR);
??? }
??? public int getWeekOfMonth() {
?return calendar.get(Calendar.WEEK_OF_MONTH);
??? }
??? public int getDayOfWeek() {
?return calendar.get(Calendar.DAY_OF_WEEK);
??? }
????
??? public int getHour() {
?return calendar.get(Calendar.HOUR_OF_DAY);
??? }
???
??? public int getMinute() {
?return calendar.get(Calendar.MINUTE);
??? }
??? public int getSecond() {
?return calendar.get(Calendar.SECOND);
??? }
??? public static void main(String args[]) {
?JspCalendar db = new JspCalendar();
?p("date: " + db.getDayOfMonth());
?p("year: " + db.getYear());
?p("month: " + db.getMonth());
?p("time: " + db.getTime());
?p("date: " + db.getDate());
?p("Day: " + db.getDay());
?p("DayOfYear: " + db.getDayOfYear());
?p("WeekOfYear: " + db.getWeekOfYear());
?p("era: " + db.getEra());
?p("ampm: " + db.getAMPM());
?p("DST: " + db.getDSTOffset());
?p("ZONE Offset: " + db.getZoneOffset());
?p("TIMEZONE: " + db.getUSTimeZone());
??? }
??? private static void p(String x) {
?System.out.println(x);
??? }
??? public int getEra() {
?return calendar.get(Calendar.ERA);
??? }
??? public String getUSTimeZone() {
?String[] zones = new String[] {"Hawaii", "Alaskan", "Pacific",
?????????? "Mountain", "Central", "Eastern"};
?
?return zones[10 + getZoneOffset()];
??? }
??? public int getZoneOffset() {
?return calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000);
??? }
??? public int getDSTOffset() {
?return calendar.get(Calendar.DST_OFFSET)/(60*60*1000);
??? }
???
??? public int getAMPM() {
?return calendar.get(Calendar.AM_PM);
??? }
}