??xml version="1.0" encoding="utf-8" standalone="yes"?>日av在线播放中文不卡,国产精品视频在线观看,久热精品视频在线http://www.aygfsteel.com/jorwen/category/13680.htmlzh-cnThu, 29 Mar 2012 12:38:45 GMTThu, 29 Mar 2012 12:38:45 GMT60DWR2.0的调用前拦截http://www.aygfsteel.com/jorwen/archive/2008/12/05/244666.html方佳?/dc:creator>方佳?/author>Fri, 05 Dec 2008 12:42:00 GMThttp://www.aygfsteel.com/jorwen/archive/2008/12/05/244666.htmlhttp://www.aygfsteel.com/jorwen/comments/244666.htmlhttp://www.aygfsteel.com/jorwen/archive/2008/12/05/244666.html#Feedback3http://www.aygfsteel.com/jorwen/comments/commentRss/244666.htmlhttp://www.aygfsteel.com/jorwen/services/trackbacks/244666.html
当然了,做拦截器有很多方式,但经q研I发现DWR自带很多插gQ其中就有一个调用处理的插g。具体做法如下?br />
在web.xml里的DWR配置中加入一个参敎ͼ
<init-param>
            
<param-name>
                org.directwebremoting.extend.Remoter
            
</param-name>
            
<param-value>com.xxx.base.framework.web.MyDWRRemoter</param-value>
        
</init-param>

然后自己创徏q个实现cR?br />
public class MyDWRRemoter extends DefaultRemoter
{

    
public Replies execute( Calls calls )
    
{
        HttpSession session 
= WebContextFactory.get().getSession();
        ISessionContainer sc 
= ( ISessionContainer ) session.getAttribute( ISessionContainer.SESSION_CONTAINER_KEY );

        
//session?/span>
        if ( sc == null || sc.getUserInfo() == null )
        
{
            logOut();
            
return super.execute( new Calls() );
        }

        
else
        
{
            IUserInfo userInfo 
= sc.getUserInfo();
            
if(!SecurityFactory.getInstance().isOnline( userInfo.getUserID(), session.getId() ))
            
{
                logOut();
                
return super.execute( new Calls() );
            }

        }

        
return super.execute( calls );
    }


    
private void logOut()
    
{
        WebContext wct 
= WebContextFactory.get();
        Util utilThis 
= new Util(wct.getScriptSession());
        utilThis.addScript( 
new ScriptBuffer("logOut()"));
    }

}

其中Q检查用h否登录,如果没有dp回一个空的super.execute( new Calls());, 不能q回null否则会报错?br /> 查通过p用super.execute( calls );  其实calls里还能获得很多信息?br />
最后大家注意logOutҎQ这里用CDWR2.0新功能:DWR反向调用Q就是DWR调用javascriptQ具体用法大家网上可以查刎ͼ需要配|的Q我q里׃多说了。补充一下,addScript调用的是html里的function logOutQ).

q样的话Q如果用户session时Q或被管理员t掉Q一旦他做Q何dwr操作׃被强q登出到首页了?img src ="http://www.aygfsteel.com/jorwen/aggbug/244666.html" width = "1" height = "1" />

]]>
[整理]JavaScript的؜合承方?/title><link>http://www.aygfsteel.com/jorwen/archive/2007/03/03/101624.html</link><dc:creator>方佳?/dc:creator><author>方佳?/author><pubDate>Sat, 03 Mar 2007 07:44:00 GMT</pubDate><guid>http://www.aygfsteel.com/jorwen/archive/2007/03/03/101624.html</guid><wfw:comment>http://www.aygfsteel.com/jorwen/comments/101624.html</wfw:comment><comments>http://www.aygfsteel.com/jorwen/archive/2007/03/03/101624.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jorwen/comments/commentRss/101624.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jorwen/services/trackbacks/101624.html</trackback:ping><description><![CDATA[ <font size="2">选自《Professional Javascript For Web Developers?br /><br />其它方式Q对象冒充,callQ)QapplyQ)Q原型链都有不少~点q里׃一一介绍了,想了解的可以ȝ一下这本著作的W?章节?br /></font> <br /> <font size="2">q种Ҏ用对象冒充承属性,用原型链l承ҎQ代码如?/font> <br /> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <span style="COLOR: #0000ff">function</span> <span style="COLOR: #000000"> ClassA(sColor){<br />    </span> <span style="COLOR: #0000ff">this</span> <span style="COLOR: #000000">.color </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> sColor;<br />}<br /><br />ClassA.prototype.sayColor </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">function</span> <span style="COLOR: #000000">(){<br />    alert(</span> <span style="COLOR: #0000ff">this</span> <span style="COLOR: #000000">.color);<br />}<br /><br /></span> <span style="COLOR: #0000ff">function</span> <span style="COLOR: #000000"> ClassB(sColor, sName){<br />    ClassA.call(</span> <span style="COLOR: #0000ff">this</span> <span style="COLOR: #000000">. sColor);<br />    </span> <span style="COLOR: #0000ff">this</span> <span style="COLOR: #000000">.name </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> sName;<br />}<br /><br />ClassB.prototype </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000"> ClassA();<br /><br />ClassB.prototype.sayName </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">function</span> <span style="COLOR: #000000">(){<br />    alert(</span> <span style="COLOR: #0000ff">this</span> <span style="COLOR: #000000">.name);<br />}</span> </div> <br /> <font size="2">试Q?br /></font> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <span style="COLOR: #0000ff">var</span> <span style="COLOR: #000000"> objA </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000"> ClassA(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">red</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">);<br /></span> <span style="COLOR: #0000ff">var</span> <span style="COLOR: #000000"> objB </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000"> ClassB(</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">blue</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">, </span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">Nicholas</span> <span style="COLOR: #000000">"</span> <span style="COLOR: #000000">);<br />objA.sayColor(); </span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">red</span> <span style="COLOR: #008000"> <br /> </span> <span style="COLOR: #000000">objB.sayColor(); </span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">blue</span> <span style="COLOR: #008000"> <br /> </span> <span style="COLOR: #000000">objB.sayName();  </span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">Nicholas</span> <span style="COLOR: #008000"> <br /> </span> </div> <br />其它好方法,请参考zlnherit库和xbObjects<img src ="http://www.aygfsteel.com/jorwen/aggbug/101624.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jorwen/" target="_blank">方佳?/a> 2007-03-03 15:44 <a href="http://www.aygfsteel.com/jorwen/archive/2007/03/03/101624.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[整理]JavaScript最行?U定义类的方?/title><link>http://www.aygfsteel.com/jorwen/archive/2007/02/11/99264.html</link><dc:creator>方佳?/dc:creator><author>方佳?/author><pubDate>Sun, 11 Feb 2007 09:34:00 GMT</pubDate><guid>http://www.aygfsteel.com/jorwen/archive/2007/02/11/99264.html</guid><wfw:comment>http://www.aygfsteel.com/jorwen/comments/99264.html</wfw:comment><comments>http://www.aygfsteel.com/jorwen/archive/2007/02/11/99264.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jorwen/comments/commentRss/99264.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jorwen/services/trackbacks/99264.html</trackback:ping><description><![CDATA[ <font size="2">选自《Professional Javascript For Web Developers?br /><br />其它方式Q工厂方式,构造函数方式,原型方式都各有各的大~陷Q这里就不一一介绍了,想了解的可以ȝ一下这本著作的W?章节?br /><br />1. 混合构造函?原型方式</font> <br /> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <span style="COLOR: #0000ff">function</span> <span style="COLOR: #000000"> Car(sColor, iDoors, iMpg) {<br />  </span> <span style="COLOR: #0000ff">this</span> <span style="COLOR: #000000">.color </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> sColor;<br />  </span> <span style="COLOR: #0000ff">this</span> <span style="COLOR: #000000">.doors </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> iDoors;<br />  </span> <span style="COLOR: #0000ff">this</span> <span style="COLOR: #000000">.mpg </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> iMpg;<br />  </span> <span style="COLOR: #0000ff">this</span> <span style="COLOR: #000000">.drivers </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000"> Array(“Mike? “Sue?;<br />}<br /><br />Car.prototype.showColor </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">function</span> <span style="COLOR: #000000"> () {<br />  alert(</span> <span style="COLOR: #0000ff">this</span> <span style="COLOR: #000000">.color);<br />};<br /><br /></span> <span style="COLOR: #0000ff">var</span> <span style="COLOR: #000000"> oCar1 </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000"> Car(“red? </span> <span style="COLOR: #000000">4</span> <span style="COLOR: #000000">, </span> <span style="COLOR: #000000">23</span> <span style="COLOR: #000000">);<br /></span> <span style="COLOR: #0000ff">var</span> <span style="COLOR: #000000"> oCar2 </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000"> Car(“blue? </span> <span style="COLOR: #000000">3</span> <span style="COLOR: #000000">, </span> <span style="COLOR: #000000">25</span> <span style="COLOR: #000000">);<br /><br />oCar1.drivers.push(“Matt?;<br /><br />alert(oCar1.drivers); </span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">outputs “Mike,Sue,Matt?/span> <span style="COLOR: #008000"> <br /> </span> <span style="COLOR: #000000">alert(oCar2.drivers); </span> <span style="COLOR: #008000">//</span> <span style="COLOR: #008000">outputs “Mike,Sue?/span> </div> <br /> <font size="2">优点Q具有其它方式的优点而没有其它方式的~点<br />不Q封装性欠~?br /><br />2 . 动态原型方?/font> <br /> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"> <img id="Codehighlighter1_35_304_Open_Image" onclick="this.style.display='none'; Codehighlighter1_35_304_Open_Text.style.display='none'; Codehighlighter1_35_304_Closed_Image.style.display='inline'; Codehighlighter1_35_304_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /> <img id="Codehighlighter1_35_304_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_35_304_Closed_Text.style.display='none'; Codehighlighter1_35_304_Open_Image.style.display='inline'; Codehighlighter1_35_304_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /> <span style="COLOR: #0000ff">function</span> <span style="COLOR: #000000"> Car(sColor, iDoors, iMpg) </span> <span id="Codehighlighter1_35_304_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.aygfsteel.com/images/dot.gif" /> </span> <span id="Codehighlighter1_35_304_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />  </span> <span style="COLOR: #0000ff">this</span> <span style="COLOR: #000000">.color </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> sColor;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />  </span> <span style="COLOR: #0000ff">this</span> <span style="COLOR: #000000">.doors </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> iDoors;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />  </span> <span style="COLOR: #0000ff">this</span> <span style="COLOR: #000000">.mpg </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> iMpg;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />  </span> <span style="COLOR: #0000ff">this</span> <span style="COLOR: #000000">.drivers </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">new</span> <span style="COLOR: #000000"> Array(“Mike? “Sue?;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img id="Codehighlighter1_192_302_Open_Image" onclick="this.style.display='none'; Codehighlighter1_192_302_Open_Text.style.display='none'; Codehighlighter1_192_302_Closed_Image.style.display='inline'; Codehighlighter1_192_302_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_192_302_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_192_302_Closed_Text.style.display='none'; Codehighlighter1_192_302_Open_Image.style.display='inline'; Codehighlighter1_192_302_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />  </span> <span style="COLOR: #0000ff">if</span> <span style="COLOR: #000000"> (</span> <span style="COLOR: #0000ff">typeof</span> <span style="COLOR: #000000"> Car._initialized </span> <span style="COLOR: #000000">==</span> <span style="COLOR: #000000"> “undefined? </span> <span id="Codehighlighter1_192_302_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.aygfsteel.com/images/dot.gif" /> </span> <span id="Codehighlighter1_192_302_Open_Text"> <span style="COLOR: #000000">{<br /><img id="Codehighlighter1_236_267_Open_Image" onclick="this.style.display='none'; Codehighlighter1_236_267_Open_Text.style.display='none'; Codehighlighter1_236_267_Closed_Image.style.display='inline'; Codehighlighter1_236_267_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_236_267_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_236_267_Closed_Text.style.display='none'; Codehighlighter1_236_267_Open_Image.style.display='inline'; Codehighlighter1_236_267_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    Car.prototype.showColor </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">function</span> <span style="COLOR: #000000"> () </span> <span id="Codehighlighter1_236_267_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"> <img src="http://www.aygfsteel.com/images/dot.gif" /> </span> <span id="Codehighlighter1_236_267_Open_Text"> <span style="COLOR: #000000">{<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />      alert(</span> <span style="COLOR: #0000ff">this</span> <span style="COLOR: #000000">.color);<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span> </span> <span style="COLOR: #000000">;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" />    Car._initialized </span> <span style="COLOR: #000000">=</span> <span style="COLOR: #000000"> </span> <span style="COLOR: #0000ff">true</span> <span style="COLOR: #000000">;<br /><img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />  }</span> </span> <span style="COLOR: #000000"> <br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span> </span> </div> <p> <br /> <font size="2">优点Q封装性比上一个方式更?br />不Q就是看上去奇怪一点,呵呵</font> <br /> <br /> <font size="2">MQ以?U方式是目前最q泛使用的,量使用它们避免不必要的问题?/font> </p> <img src ="http://www.aygfsteel.com/jorwen/aggbug/99264.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jorwen/" target="_blank">方佳?/a> 2007-02-11 17:34 <a href="http://www.aygfsteel.com/jorwen/archive/2007/02/11/99264.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[原创/整理]首次发布DWR中文文档.PDFhttp://www.aygfsteel.com/jorwen/archive/2007/02/08/98857.html方佳?/dc:creator>方佳?/author>Thu, 08 Feb 2007 12:18:00 GMThttp://www.aygfsteel.com/jorwen/archive/2007/02/08/98857.htmlhttp://www.aygfsteel.com/jorwen/comments/98857.htmlhttp://www.aygfsteel.com/jorwen/archive/2007/02/08/98857.html#Feedback49http://www.aygfsteel.com/jorwen/comments/commentRss/98857.htmlhttp://www.aygfsteel.com/jorwen/services/trackbacks/98857.htmlv0.9 点击下蝲

有些错别字,我会在以后版本更?br>
׃几周把DWR中文文.PDFl搞出来?/p>

q是首次发布在网?/p>

希望对大家有?br>
有Q何意见请发我邮箱:jorwen.fang@gmail.com,或者在此留a

W一版目录预览:

W?? DWR入门 8
1.1 ?nbsp;8
1.2 W一个DWRE序QHello World 9
1.2.1 DWR攑օ你的工程 9
1.2.2 ~辑配置文g 9
1.2.3 ~写service 10
1.2.4 试DWR 10
1.2.5 ~写一个jsp 11
1.3 本章ȝ 12

W?? web.xml配置 13
2.1 主要配置 13
2.2 常用<init-param>参数列表 14
2.2.1 安全参数 14
2.2.2 Ajax服务器加载时保护参数 14
2.2.3 其他参数 15
2.3 日志配置 16
2.4 多个dwr.xml配置和J2EE角色定义 16
2.5 插g配置 18
2.6 试模式配置 19

W?? dwr.xml配置 20
3.1 U览 20
3.2 <init>标签 20
3.3 <allow>标签 21
3.3.1 Creator 21
3.3.2 Converter 25
3.4 <signatures>标签 30

W?? 整合 32
4.1 DWR与Servlet 32
4.1.1 使用webContext的方法: 32
4.1.2 Ҏ选择 32
4.2 DWR与Spring 34
4.2.1 让DWR和Spring一起工作的查列?nbsp;34
4.2.2 Spring Creator 34
4.2.3 扑ֈSpring配置文g 34
4.2.4 使用Spring配置DWR 35
4.3 DWR与JSF 36
4.3.1 JSF Creator 36
4.3.2 Servlet Filter 36
4.4 DWR与Struts 37
4.4.1 Struts creator 37
4.4.2 开始顺?nbsp;37
4.5 DWR与Weblogic或PageFlow 38
4.6 DWR与Hibernate 39
4.6.1 让DWR和Hibernate一起工作的查列?nbsp;39
4.6.2 HibernateBeanConverter 39
4.6.3 Session理 39
4.7 DWR与WebWork 40
4.7.1 配置dwr.xml 40
4.7.2 在JSP中导入脚?nbsp;40
4.7.3 高 41
4.8 DWR与Acegi 42
4.8.1 问题提出 42
4.8.2 解决Ҏ 42

W?? DWR中的JavaScript?nbsp;44
5.1 单的回调函数 44
5.2 调用元数据对?nbsp;45
5.3 查找回调函数 45
5.4 创造一个与Java对象匚w的Javascript对象 46

W?? engine.js 功能 47
6.1 使用选项 47
6.2 选项索引 48
6.2.1 处理?Handler) 48
6.2.2 调用处理?Call Handler) 48
6.2.3 Hooks (一个batch中可以注册多个hook) 49
6.2.4 全局选项(在单ơ调用或者批量调用中不可? 49
6.2.5 废弃的选项 49
6.2.6 未来版本的选项 49
6.3 选项说明 50
6.3.1 扚w调用 50
6.3.2 序调用 50
6.3.3 错误警告和超?nbsp;50
6.3.4 q程?Hooks 51
6.3.5 q程调用选项 51

W?? util.js 功能 54
7.1 $() 54
7.2 addOptions and removeAllOptions 54
7.3 addRows and removeAllRows 55
7.4 getText 56
7.5 getValue 56
7.6 getValues 57
7.7 onReturn 57
7.8 selectRange 57
7.9 setValue 58
7.10 setValues 58
7.11 toDescriptiveString 58
7.12 useLoadingMessage 58
7.13 Submission box 61

W?? DWRq阶 63
8.1 DWR  Annotations 63
8.1.1 初始配置 63
8.1.2 q程讉Kc?nbsp;63
8.1.3 对象转换 64
8.2 错误和异常处?nbsp;64
8.2.1 错误处理 64
8.2.2 异常 65
8.2.3 扑և更多的信?nbsp;65
8.3 传递额外的数据到callback函数 66
8.4 从其他的URLd数据 67
8.5 安全 68

W?? 范例_讲 71
9.1 购物?nbsp;71
9.1.1 介绍 71
9.1.2 实现目录 72
9.1.3 试部v 74
9.1.4 调用q程对象 75
9.1.5 实现购物?nbsp;77
9.1.6 调用q程?Cart Ҏ 79
9.1.7 演示l果 81
9.1.8 ȝ 81

W?0? 附录 83
10.1 常见问题 83
10.1.1 TransformerFactoryConfigurationError 83
10.1.2 XML解析错误 83
10.1.3 使用weblogic的类路径问题 83
10.1.4 没有cookies的情况下用DWR 84
10.2 JavaScript高应用 85
10.2.1 用变量操U函?nbsp;85
10.2.2 高阶函数 86
10.2.3 动态类?nbsp;87
10.2.4 灉|的对象模?nbsp;89
10.2.5 本节ȝ 91



]]>
[原创]GWT做的鼠标over事ghttp://www.aygfsteel.com/jorwen/archive/2006/08/02/61301.html方佳?/dc:creator>方佳?/author>Wed, 02 Aug 2006 02:15:00 GMThttp://www.aygfsteel.com/jorwen/archive/2006/08/02/61301.htmlhttp://www.aygfsteel.com/jorwen/comments/61301.htmlhttp://www.aygfsteel.com/jorwen/archive/2006/08/02/61301.html#Feedback2http://www.aygfsteel.com/jorwen/comments/commentRss/61301.htmlhttp://www.aygfsteel.com/jorwen/services/trackbacks/61301.html阅读全文

]]>
[整理]介绍一个GWT的网?/title><link>http://www.aygfsteel.com/jorwen/archive/2006/08/01/61153.html</link><dc:creator>方佳?/dc:creator><author>方佳?/author><pubDate>Tue, 01 Aug 2006 03:17:00 GMT</pubDate><guid>http://www.aygfsteel.com/jorwen/archive/2006/08/01/61153.html</guid><wfw:comment>http://www.aygfsteel.com/jorwen/comments/61153.html</wfw:comment><comments>http://www.aygfsteel.com/jorwen/archive/2006/08/01/61153.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jorwen/comments/commentRss/61153.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jorwen/services/trackbacks/61153.html</trackback:ping><description><![CDATA[GWT QQ 号Q?8310588<a ><br /><br />http://www.gwtpowered.org/</a><br /><br />有超多的GWTl徏Q比如:<br /><br />好的日期输入[插图][<a >演示<a>]<br /><img src="http://www.aygfsteel.com/images/blogjava_net/jorwen/13233/r_gwt_date.JPG" /><br /><br />可排序的tableQ[插图][<a >演示<a>]<br /><img src="http://www.aygfsteel.com/images/blogjava_net/jorwen/13233/r_gwt_sort_table.JPG" /><br /><br /><br />q有很多其他的,大家自己dN要的lg。自己再修改Q扩展,汉化变成自己的超UGWTlg吧!<br /></a></a></a></a><img src ="http://www.aygfsteel.com/jorwen/aggbug/61153.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jorwen/" target="_blank">方佳?/a> 2006-08-01 11:17 <a href="http://www.aygfsteel.com/jorwen/archive/2006/08/01/61153.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[原创]ajax in action W??j2ee?动态双l合功能http://www.aygfsteel.com/jorwen/archive/2006/07/20/59126.html方佳?/dc:creator>方佳?/author>Thu, 20 Jul 2006 02:08:00 GMThttp://www.aygfsteel.com/jorwen/archive/2006/07/20/59126.htmlhttp://www.aygfsteel.com/jorwen/comments/59126.htmlhttp://www.aygfsteel.com/jorwen/archive/2006/07/20/59126.html#Feedback6http://www.aygfsteel.com/jorwen/comments/commentRss/59126.htmlhttp://www.aygfsteel.com/jorwen/services/trackbacks/59126.html阅读全文

]]>
[原创] 用GWT做的输入前提C?/title><link>http://www.aygfsteel.com/jorwen/archive/2006/07/14/58173.html</link><dc:creator>方佳?/dc:creator><author>方佳?/author><pubDate>Fri, 14 Jul 2006 05:51:00 GMT</pubDate><guid>http://www.aygfsteel.com/jorwen/archive/2006/07/14/58173.html</guid><wfw:comment>http://www.aygfsteel.com/jorwen/comments/58173.html</wfw:comment><comments>http://www.aygfsteel.com/jorwen/archive/2006/07/14/58173.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jorwen/comments/commentRss/58173.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jorwen/services/trackbacks/58173.html</trackback:ping><description><![CDATA[     摘要: GWT QQ 号Q?8310588功能Q?。当加蝲面时把数据库的表读入matchArr2。每ơ按键都是matchArr的查询,查询Ҏ用正则表辑ּ抱歉Q没什么注释,l大家添ȝ了有M疑问误pL qqQ?59102567  MSNQjorwen_fang@hotmail.com代码下蝲我不久前写的关于gwt文章另外?《ajax in action》书中有提到更佳的算法,提高性能Q以及打字过...  <a href='http://www.aygfsteel.com/jorwen/archive/2006/07/14/58173.html'>阅读全文</a><img src ="http://www.aygfsteel.com/jorwen/aggbug/58173.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jorwen/" target="_blank">方佳?/a> 2006-07-14 13:51 <a href="http://www.aygfsteel.com/jorwen/archive/2006/07/14/58173.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[整理]Google Web Toolkit ?googlipse(GWT eclipse 插g)开发ajaxhttp://www.aygfsteel.com/jorwen/archive/2006/07/09/57393.html方佳?/dc:creator>方佳?/author>Sun, 09 Jul 2006 15:47:00 GMThttp://www.aygfsteel.com/jorwen/archive/2006/07/09/57393.htmlhttp://www.aygfsteel.com/jorwen/comments/57393.htmlhttp://www.aygfsteel.com/jorwen/archive/2006/07/09/57393.html#Feedback3http://www.aygfsteel.com/jorwen/comments/commentRss/57393.htmlhttp://www.aygfsteel.com/jorwen/services/trackbacks/57393.html

GWT QQ 交流:28310588

最q在?Google Web Toolkit 
一个可以用Ujava~写ajaxQ然后自动翻译成可以用在j2ee工程里的E序Q太Z?br />
因此不用学ajaxQ只要会javaQ尤其awt基础Q和q个工具QajaxL?
介绍一下,好东西,感觉有望成ؓ热门ajax开发工P而且目前q出了与eclipse插gQgooglipse?br />我刚用过Q很方便


攉的资料:

1. 非常完整的gwtQnetbeans的教E:http://www.javapassion.com/handsonlabs/ajaxgwtintro/

2. ?IBM文章介绍Google Web Toolkit 

面向 Java 开发h员的 Ajax: 使用 Google Web Toolkit 开?Ajax QGWT(Google Web Toolkit) ?Google 最q推出的一个开?Ajax 应用的框Ӟ它支持用 Java 开发和调试 Ajax 应用Q本文主要介l如何利?GWT q行 Ajax 的开发?
面向 Java 开发h员的 Ajax: Google Web Toolkit 入门 QAjax 被用于创建更加动态和交互性更好的 Web 应用E序。Google Web Toolkit Q简U?GWTQ??Google 推出?Ajax 应用开发包QGWT 支持开发者?Java 语言开?Ajax 应用。本文将介绍 GWT 开?Ajax 应用的基本方法和步骤?br />
面向 Java 开发h员的 Ajax: 探烦 Google Web ToolkitQ最q发布的 Google Web Toolkit (GWT) 是一l全面的 API 和工P它支持用户几乎完全?Java 代码来创建动?Web 应用E序。本文将向您展示 GWT 能做什么,q帮助您定它是否适合您?/td>

3.(GWT eclipse 插g1)gwtdesigner
http://www.instantiations.com/gwtdesigner/download.html

4.(GWT eclipse 插g2)googlipse

1) 下蝲Q?a target="_blank">http://sourceforge.net/projects/googlipse

2) 安装前提Q?br />

a)  Eclipse 3.2 with WebTools Platform 1.5Q一定要?Q?br />b) q行?Java 1.5 ?br />c) q需要下?Google Web Toolkit

3) googlipse从安装插件到做出实例全过E(官方Q?br />
 (*) Drop the com.googlipse.gwt_<version>.jar file in your eclipse\plugins folder
 (*) Open Eclipse. Select Window->Preferences->Googlipse and set GWT home to the directory where you have installed the Google Web Toolkit.
 (*) You are all set to code.
 
Adding Googlipse to your project:

 Googlipse is implemented as a WTP Facet. When creating a new Dynamic Web Project, select Googlipse in the Project Facets page. If you already have a Dynamic Web Project, you can add Googlipse facet by selecting Project->Properties->Project Facets(Please make sure you don't have gwt-user.jar in your classpath). In case you didn't like Googlipse, you can remove the facet.

Creating a Module:

 Once you have a Dynamic Web Project with Googlipse facet, you can add a new module by File->New->Other->Googlipse->Gwt Module. Modules can be created only in valid java packages (default package is not allowed). Either you can type in the package (with project & source folder) in the location field or you can select it by clicking Browse button. You can also click the Create button to create a new package. Next type in the name of the module. Click Finish, you will have all the artifacts for the module generated.
 
Adding a Remote Service;

 Note :A Remote Service will be created only in a module. So if you don't have a module, you need to create one using the New Module wizard, before this step.
 You can select File->New->Other->Googlipse->Gwt Remote Service. Click the Browse button and select the module (the gwt.xml file). Type the name and uri for the service and click Finish. Now the artifacts for the remote service will be generated. (You have to add an entry in the gwt.xml file manually. Googlipse doesn't add it. This feature will be implemented in future versions)
 
Adding a Remote Service method:

 You can open the RemoteService interface and add/change methods in it. You need to provide the implementation of those methods in RemoteServiceImpl class, but thanks to Googlipse, you don't have to do anything in RemoteServiceAsync. Googlipse will automatically update the corresponding Async file whenever a RemoteService interface is changed.
 
Calling a method using Remote Service:

 The utility class in the Remote service should help you in making the remote call.
 
 MyRemoteServiceAsync async = MyRemoteService.Util.getInstance();
 async.makeRemoteCall(param1, param2, callback);
 
Running/Debugging a Gwt Application:

 Select Run->Run/Debug to activate the Lauch configuration dialog box. Double Click "Gwt Application". In the main page, you can select the Project & Module you want to run. In the parameters page you can select the parameters such as port and log level. Click Run to execute the GwtShell & bring up your application. The laucher will add the jar files & all the source folders in the project to your application.
 
 
Questions/Bugs/Suggestions?

 Drop a mail to googlipse-users@lists.sourceforge.net



]]>
վ֩ģ壺 | ¡| | | ˫| | | | | | | | | κ| ϽϽ| | | | Ƹ| ͨ| Դ| | Ͽ| | Ϣ| | ˶| ˮ| | | | | | ̩˳| կ| | | | | | |