caike

优秀是一种习惯,生命是一种过程,两点之间最短的距离并不一定是直线,只有知道如何停止的人才知道如何加快

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  3 随笔 :: 2 文章 :: 19 评论 :: 0 Trackbacks

2008年2月17日 #

Struts 2.0和Struts以前的版本是完全的不同, 刚开始看起来是一头的雾水, 晕的很.

整理了一下网上现有的Struts 2.0的一些视频教程和电子书:

视频教程:
(比较适合初学者, 讲的比较慢, 很细,排名不分先后:-) )
1.《浪曦 Struts 2应用开发详解系列视频2008/2/2更新》
2.《IT电子教育门户JAVA培训之Struts 更新struts2.0》第一版
3. <2008美河J2EE原创视频系列课程-Struts2.0> (感谢网友sakura)

Blog:
1. Max On Java (感谢网友BeanSoft)

电子书
(Struts 2相对来说, 还是比较新, 所以只有英文版的书)

1. Starting Struts 2

来自Infoq的一本免费的电子书, 是我看的第一本关于Struts 2.0的书.

2. Practical Apache Struts 2 Web 2.0 Projects

这本书更专业一点, 强烈推荐:)
如果朋友们有更多的资源, 请留言.

posted @ 2008-02-17 13:57 caike 阅读(2562) | 评论 (9)编辑 收藏

2006年1月20日 #

在新项目中使用了eXtremeComponents(www.extremecomponents.org)来进行分页显示。

eXtremeComponents在别的页面都使用正常,分页,过滤都没问题。
偏偏只有一个页面,查询完能正常显示结果,但是一点“下一页”,查询的结果就没了。很是郁闷,看来看去,没发现这个页面使用eXtremeComponents和别的页面有什么不同。
百思不得其解,最后查看jsp生成的html源代码,才发现在页面里有个下拉列表的name="times",然而点了
                                <select name="times" size="1" id="times">
                                            
<option selected value="ALL">
                                                全部
                                            
</option>
                                            
<option value="1">
                                                早场
                                            
</option>
                                            
<option value="2">
                                                晚场
                                            
</option>
                                        
</select>

下一页之后,ec把这个列表times的值给弄没了,所以后台取不到times,因此查询不到结果。

最后把这个下拉列表的name改为times1,一切就OK了。因此可能eXtremeComponents用到times这个属性,可能是它的保留字,因为没有看它的源代码,不敢肯定。总之以后大家遇到类似的问题,注意一下输入框的name,不要和它冲突。
posted @ 2006-01-20 11:57 caike 阅读(1751) | 评论 (5)编辑 收藏

2005年12月23日 #

Jodd是一个开源项目,http://jodd.sourceforge.net有一个好用的jsp标签,可以大大简化有表单输入的controller

 

使用Jodd的优点:

1. 简化和统一controller,抛弃extends SimpleFormController,统一使用implements Controller的方式。

2. 简化JSP页面的bind,不需要一个字段一个字段的绑定。

3. bean没有任何要求,可以使用任意的bean做为formBean.

 

使用方法简介:

1.jodd.jar放到web-inf->lib下,在web.xml里声名标签:

<taglib>

       
<taglib-uri>jodd</taglib-uri>

       
<taglib-location>/WEB-INF/lib/jodd.jar</taglib-location>

    
</taglib>

 

2.任意的一个javaBean做为FormBean

package caike; 

public class User {

       
private String userName; 

       
private String password;
     

       
public String getPassword() {

              
return password;

       } 

       
public void setPassword(String pwd) {

              
this.password = pwd;

       } 

       
public String getUserName() {

              
return userName;

       } 

       
public void setUserName(String username) {

              
this.userName = username;

       }
 

}

3.JSP页面使用jodd tag:,比如对应用户登录页面的

<%@page import="caike.User"%>

<%@taglib uri="jodd" prefix="jodd"%>

 

<jodd:form beans="user" scopes="session">

<form action="my.htm" method="post" >
 

    
<table width="300" border="0" cellspacing="0" cellpadding="0"

       align
="center" class="white">  

       
<tr>

           
<td height="32" align="right" width="107">用户名:</td>

       
<td height="32" width="193"><input type="text" name="userName"

              class
="input" size="20"> </td>          

       
</tr>

       
<tr>

           
<td height="33" align="right" width="107">密码:</td>

           
<td height="33" width="193"><input type="password" name="password"

              class
="input" size="21"></td>

       
</tr>
      

        
<tr>

           
<td height="69" align="center" colspan="2">

            
<input type="submit" name="Submit" value="登录">

       
</tr>

    
</table>

</form>

</jodd:form>

 

4.Dispatch-servelt.xml中对controller的配置

<bean id="myController" class="caike.MyController">    

    </bean>

    不再需要这种方式:

    <!--

       <bean id="myController" class="caike.MyFormController">    

       <property name="commandClass" value="caike" />      

       <property name="formView" value="userForm" />   

       </bean>

    -->

5.controller中取出user

package caike; 

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse; 

import jodd.bean.BeanUtil; 

import org.springframework.web.servlet.ModelAndView;

import org.springframework.web.servlet.mvc.Controller;

 

public class MyController implements Controller {

 

       
public ModelAndView handleRequest(HttpServletRequest request,

                     HttpServletResponse response) 
throws Exception {

 

              User user 
= new User();

              BeanUtil.load(user, request);

              System.out.println(
"用户名:" + user.getUserName() + " 密码:" + user.getPassword());

              
return null;

       }

 

}

 

需要注意的地方:

表单中对应的名字namejavaBean里对应的属性名要相同。

<input type="text" name="userName"

              class="input" size="20">

public class User {

       private String userName;

.......

 参考:

http://www.blogjava.net/calvin/archive/2005/08/24/10914.html

 花钱的年华   简化Spring(4)--View层

posted @ 2005-12-23 09:50 caike 阅读(3252) | 评论 (4)编辑 收藏

仅列出标题