﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-FreeMan</title><link>http://www.blogjava.net/freeman/</link><description>Java是条不归路……</description><language>zh-cn</language><lastBuildDate>Sun, 03 May 2026 08:27:48 GMT</lastBuildDate><pubDate>Sun, 03 May 2026 08:27:48 GMT</pubDate><ttl>60</ttl><item><title>Struts标签之四：Tiles（模板）标记</title><link>http://www.blogjava.net/freeman/archive/2007/10/30/157068.html</link><dc:creator>我的Java工作经历</dc:creator><author>我的Java工作经历</author><pubDate>Tue, 30 Oct 2007 14:48:00 GMT</pubDate><guid>http://www.blogjava.net/freeman/archive/2007/10/30/157068.html</guid><wfw:comment>http://www.blogjava.net/freeman/comments/157068.html</wfw:comment><comments>http://www.blogjava.net/freeman/archive/2007/10/30/157068.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/freeman/comments/commentRss/157068.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/freeman/services/trackbacks/157068.html</trackback:ping><description><![CDATA[1：创建模板标记<br />
需要用到的标签：&lt;tiles:insert &gt;<br />
&lt;tiles:insert&gt;的作用类似于方法中的形参，该标记将被调用到该模板的页面使用&lt;tiles:insert /&gt;和&lt;tiles:put /&gt;标记指定的具体信息。<br />
下面会有一个例子：<br />
Template.jsp模板页：<br />
&lt;%@taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles"%&gt;<br />
&lt;html&gt;<br />
&lt;body&gt;<br />
&lt;table width="80%" higth="80%" bordercolor="#ffddff"&gt;<br />
&nbsp;&lt;tr height="15%" bgcolor="#ddbbcc"&gt;<br />
&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;tiles:insert attribute="header" /&gt;<br />
&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&lt;/tr&gt;<br />
&nbsp;&lt;tr height="50%" bgcolor="#ffaaaa"&gt;<br />
&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;tiles:insert attribute="content" /&gt;<br />
&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&lt;/tr&gt;<br />
&nbsp;&lt;tr height="15%" bgcolor="#ccccff"&gt;<br />
&nbsp;&nbsp;&lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;tiles:insert attribute="footer" /&gt;<br />
&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&lt;/tr&gt;<br />
&lt;/table&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
<br />
关键的show.jsp<br />
<p>&lt;%@page contentType="text/html;charset=gb2312" language="java"%&gt;<br />
&lt;%@taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %&gt;</p>
<p>&lt;tiles:insert page="Template.jsp"&gt;<br />
&nbsp;&lt;tiles:put name="header" value="A.jsp"&gt;&lt;/tiles:put&gt;<br />
&nbsp;&lt;tiles:put name="content" value="B.jsp"&gt;&lt;/tiles:put&gt;<br />
&nbsp;&lt;tiles:put name="footer" value="C.jsp"&gt;&lt;/tiles:put&gt;<br />
&lt;/tiles:insert&gt;<br />
</p>
<br />
A.jsp部分，b.jsp和c.jsp略过<br />
&lt;%@page contentType="text/html;charset=gb2312" language="java"%&gt;<br />
&lt;%@taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %&gt;<br />
演示信息，表头部分<br />
<br />
<img src ="http://www.blogjava.net/freeman/aggbug/157068.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/freeman/" target="_blank">我的Java工作经历</a> 2007-10-30 22:48 <a href="http://www.blogjava.net/freeman/archive/2007/10/30/157068.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>logic逻辑标记之三：流程控制标记</title><link>http://www.blogjava.net/freeman/archive/2007/10/30/157059.html</link><dc:creator>我的Java工作经历</dc:creator><author>我的Java工作经历</author><pubDate>Tue, 30 Oct 2007 14:04:00 GMT</pubDate><guid>http://www.blogjava.net/freeman/archive/2007/10/30/157059.html</guid><wfw:comment>http://www.blogjava.net/freeman/comments/157059.html</wfw:comment><comments>http://www.blogjava.net/freeman/archive/2007/10/30/157059.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/freeman/comments/commentRss/157059.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/freeman/services/trackbacks/157059.html</trackback:ping><description><![CDATA[<p>流程控制包括转发标记&lt;logic:forward&gt;<br />
<br />
重定向标记&lt;logic:redirect&gt;<br />
<br />
1：其中&lt;logic:forward&gt;标记可以将请求转发给全局ActionForward指定的响应页面。此标记只有一个name属性，</p>
用来指定全局变量ActionForward的名称，该属性必须来自struts应用程序配置文件&lt;global-forwards&gt;元素的某个子元素&lt;forward&gt;的name属性<br />
<br />
2：&lt;logic:redirect&gt;<br />
使用HttpServletResponse.sendRedicect()方法实现HTTP页面重定向的功能。有以下属性<br />
<br />
forward：映射了资源相对路径的ActionForward<br />
href：资源完整的url<br />
page：资源的相对路径<br />
使用这个标记，至少要有forward href page 中的一个属性，以便明确标明响应重定向到哪个资源<br />
&lt;logic:redirect href="testlogicBean2.jsp" /&gt;<br />
<img src ="http://www.blogjava.net/freeman/aggbug/157059.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/freeman/" target="_blank">我的Java工作经历</a> 2007-10-30 22:04 <a href="http://www.blogjava.net/freeman/archive/2007/10/30/157059.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转帖：Java书写规范</title><link>http://www.blogjava.net/freeman/archive/2007/07/25/132311.html</link><dc:creator>我的Java工作经历</dc:creator><author>我的Java工作经历</author><pubDate>Wed, 25 Jul 2007 06:49:00 GMT</pubDate><guid>http://www.blogjava.net/freeman/archive/2007/07/25/132311.html</guid><wfw:comment>http://www.blogjava.net/freeman/comments/132311.html</wfw:comment><comments>http://www.blogjava.net/freeman/archive/2007/07/25/132311.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/freeman/comments/commentRss/132311.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/freeman/services/trackbacks/132311.html</trackback:ping><description><![CDATA[<p>JAVA书写规范</p>
<p>(这条文章已经被阅读了364次) 时间：2002年03月08日 18:59　来源：韩伟 原创-IT</p>
<p>1. 命名 </p>
<p>1.1 Package的名字由一个小写单词组成； </p>
<p>一个特有的包的名字的第一部分总是全部使用小写字母， </p>
<p>并应该是顶级域名中的一个，现在有com, edu, gov, mil, net, org， </p>
<p>或者是在ISO标准3166，1981中定义的两个字母的国家标识。 </p>
<p>这样的规则可确定某一目录分开的组件，部门，项目，或登陆名 </p>
<p>com.sun.eng , com.apple.quicktime.v2 ,org.apache.catalina </p>
<p>&nbsp;</p>
<p>1.2 Class/Interface：大写字母开头而其他字母都小写； </p>
<p>类的名字应是名词，混合大小写，每个词的第一个字母大写。 </p>
<p>尽量保证你的类的名字简单并是描述性的。使用完整的单词-避免 </p>
<p>头字语和缩写（除非缩写比长的格式更广泛使用，例如URL or HTML） </p>
<p>class ImageSprite , interface RasterDelegate </p>
<p>&nbsp;</p>
<p>1.3 方法应是动词，混合大小写，第一个字母小写，每个内部的词 </p>
<p>的第一个字母大写；除了变量，所有的实例、类和类的常量都 </p>
<p>是以小写字母开头的混和大小写。内部的词以大写字母开头。 </p>
<p>变量名字不应以下划线或美元符$开始，尽管二者都是允许的。 </p>
<p>run() ,runFast() , getBackground() </p>
<p>&nbsp;</p>
<p>1.4 变量名字应简短但有意义。变量名字的选择应该是可记忆 </p>
<p>的---就是说给普通的人指出它的使用的目的，除非是临时的。临时变 </p>
<p>量的一般的名字对于整形变量是i,j,k,m,和n，对于字符是c,d,和e。 </p>
<p>int i; </p>
<p>char c; </p>
<p>float myWidth; </p>
<p>&nbsp;</p>
<p>1.5 常量：声明类常量的变量和ANSI常量的名字为下划线分开的 </p>
<p>大写字母单词（应避免ANSI常量，除非为了调试） </p>
<p>static final int MIN_WIDTH = 4; </p>
<p>static final int MAX_WIDTH = 999; </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>2. 文件 </p>
<p>2.1 开头：注释(name,version，date,copyright)，package,import； </p>
<p>/* </p>
<p>* Classname </p>
<p>* </p>
<p>* Version information </p>
<p>* </p>
<p>* Date </p>
<p>* </p>
<p>* Copyright notice </p>
<p>*/ </p>
<p>package java.awt; </p>
<p>import java.awt.peer.CanvasPeer; </p>
<p>&nbsp;</p>
<p>2.2 Class/Interface：JavaDoc文档注释，体（包含程序、运行和其他注释）； </p>
<p>变量，实例，方法等：按public，protect，private排列；尽量少用public。 </p>
<p>参见最后example </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>3. 缩进 </p>
<p>3.1 避免每行多于80 个字符，逗号后或运算符前断开， </p>
<p>someMethod(longExpression1, longExpression2, longExpression3, </p>
<p>longExpression4, longExpression5); </p>
<p>&nbsp;</p>
<p>var = someMethod1(longExpression1, </p>
<p>someMethod2(longExpression2, </p>
<p>longExpression3)); </p>
<p>&nbsp;</p>
<p>3.2 较高级的断开比较低级的断开更好，新行应与同级 </p>
<p>上一行的开头对齐；以下是断开算术式的两个例子。 </p>
<p>第一个较好，因为断开出现在算术式以外，处于较高一级。 </p>
<p>longName1 = longName2 * (longName3 + longName4 - longName5) </p>
<p>+ 4 * longname6; // PREFER </p>
<p>&nbsp;</p>
<p>longName1 = longName2 * (longName3 + longName4 </p>
<p>- longName5) + 4 * longname6; // AVOID </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>3.3 缩排的一个单位应使用4 个空格，不使用制表符而尽量使用空格。 </p>
<p>通常语句使用8个空格缩进，就要折行，由于传统的（4个空格） </p>
<p>缩进使观察程序体比较难。例如： </p>
<p>if ((condition1 &amp;&amp; condition2) </p>
<p>|| (condition3 &amp;&amp; condition4) </p>
<p>||!(condition5 &amp;&amp; condition6)) { <a href="file://BAD/">file://BAD</a> WRAPS </p>
<p>doSomethingAboutIt(); <a href="file://MAKE/">file://MAKE</a> THIS LINE EASY TO MISS </p>
<p>} </p>
<p>&nbsp;</p>
<p><a href="file://USE/">file://USE</a> THIS INDENTATION INSTEAD </p>
<p>if ((condition1 &amp;&amp; condition2) </p>
<p>|| (condition3 &amp;&amp; condition4) </p>
<p>||!(condition5 &amp;&amp; condition6)) { </p>
<p>doSomethingAboutIt(); </p>
<p>} </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>4. 注释，Java程序有两类注释：文档注释和执行注释。 </p>
<p>4.1 文档注释只有java具有，/**...*/。能够被javadoc 工具生成HTML文档， </p>
<p>描述类，接口，构造器，方法和字段，相当于使用指南。 </p>
<p>/** </p>
<p>* Class description goes here. </p>
<p>* </p>
<p>* @version 1.82 18 Mar 1999 </p>
<p>* @author Firstname Lastname </p>
<p>*/ </p>
<p>&nbsp;</p>
<p>4.2 执行注释是那些在使用在C++中的/*...*/和//。目的为了理解程序和运行， </p>
<p>包括不适合于文档注释的内容，块状或一行，使用/*...*/，注释程序可使用//， </p>
<p>也可放在短行后面，尽量对齐。 </p>
<p>/* </p>
<p>* @(#)Blah.java 1.82 99/03/18 </p>
<p>* </p>
<p>* Copyright (c) 1994-1999 Sun Microsystems, Inc. </p>
<p>* 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. </p>
<p>* All rights reserved. </p>
<p>* </p>
<p>* This software is the confidential and proprietary information of Sun </p>
<p>* Microsystems, Inc. ("Confidential Information"). You shall not </p>
<p>* disclose such Confidential Information and shall use it only in </p>
<p>* accordance with the terms of the license agreement you entered into </p>
<p>* with Sun. </p>
<p>*/ </p>
<p>&nbsp;</p>
<p>/* A class implementation comment can go here. */ </p>
<p>// implementation comment </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>5. 声明declaration </p>
<p>5.1 每行一个声明，加以注释； </p>
<p>int level; // indentation level </p>
<p>int size; // size of table </p>
<p>&nbsp;</p>
<p>5.2 不要在同一行放置不同的类型； </p>
<p>int foo, fooarray[]; <a href="file://WRONG/">file://WRONG</a>! </p>
<p>&nbsp;</p>
<p>5.3 只在块的开始处，放置声明； </p>
<p>第一次使用时再声明，增强代码的可移植性。 </p>
<p>if (condition) { </p>
<p>int int2 = 0; // beginning of "if" block </p>
<p>... </p>
<p>} </p>
<p>for (int i = 0; i &lt; maxLoops; i++) { ... } </p>
<p>&nbsp;</p>
<p>5.4 方法后紧跟"(" ，"{"出现在行尾。 </p>
<p>Sample(int i, int j) { </p>
<p>ivar1 = i; </p>
<p>ivar2 = j; </p>
<p>} </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>6. 语句 </p>
<p>6.1 每行最多包括一个语句； </p>
<p>argv++; // Correct </p>
<p>argc--; // Correct </p>
<p>argv++; argc--; // AVOID! </p>
<p>if (condition) { </p>
<p>statements; </p>
<p>} else { </p>
<p>statements; </p>
<p>} </p>
<p>for (initialization; condition; update) { </p>
<p>statements; </p>
<p>} </p>
<p>&nbsp;</p>
<p>6.2 比较重要的一个： </p>
<p>try { </p>
<p>statements; </p>
<p>}catch (ExceptionClass e) { </p>
<p>statements; </p>
<p>} </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>7. 空格 </p>
<p>7.1 利用空行分隔代码段来提高可读性； </p>
<p>7.2 使用空行：类，接口，方法之间，在一个方法的本地变量和它的第一个语句间； </p>
<p>7.3 被一个圆括号跟着的关键字应被一个空格所分开， </p>
<p>例"while (true) { ", </p>
<p>但方法不分开。 </p>
<p>7.4 参数列表中的逗号之后使用一个空格。 </p>
<p>public void doSomethingElse(Object someParam, String twoParam) </p>
<p>7.5 二进制的操作符与数以空格分开,例"a = (a + b) / (c * d);" 。 </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>8. 其它 </p>
<p>8.1 避免使用一个对象来访问一个类的（静态）变量或方法。 </p>
<p>而是使用一个类的名字； </p>
<p>classMethod(); <a href="file://OK/">file://OK</a> </p>
<p>AClass.classMethod(); <a href="file://OK/">file://OK</a> </p>
<p>anObject.classMethod(); <a href="file://AVOID/">file://AVOID</a>! </p>
<p>&nbsp;</p>
<p>8.2 避免分配多个变量给同样值在一个单独的语句中； </p>
<p>fooBar.fChar = barFoo.lchar = 'c'; // AVOID! </p>
<p>&nbsp;</p>
<p>8.3 适当使用()和{}来分隔运算和程序。 </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>9. 性能有关 (优化代码，调试，运行) </p>
<p>避免太多的使用 synchronized 关键字 ； </p>
<p>尽量使用 StringBuffer 对象； </p>
<p>尽量不要混合使用AWT 和 Swing 组件，等等。 </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>下面是一个参考范例。 </p>
<p>/* </p>
<p>* @(#)Blah.java 1.82 99/03/18 </p>
<p>* </p>
<p>* Copyright (c) 1994-1999 Sun Microsystems, Inc. </p>
<p>* 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. </p>
<p>* All rights reserved. </p>
<p>* </p>
<p>* This software is the confidential and proprietary information of Sun </p>
<p>* with Sun..... </p>
<p>*/ </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>package java.blah; </p>
<p>&nbsp;</p>
<p>import java.blah.blahdy.BlahBlah; </p>
<p>&nbsp;</p>
<p>/** </p>
<p>* Class description goes here. </p>
<p>* </p>
<p>* @version 1.82 18 Mar 1999 </p>
<p>* @author Firstname Lastname </p>
<p>*/ </p>
<p>public class Blah extends SomeClass { </p>
<p>/* 执行注释. */ </p>
<p>&nbsp;</p>
<p>/** classVar1 文档注释*/ </p>
<p>public static int classVar1; </p>
<p>&nbsp;</p>
<p>/** </p>
<p>* classVar2 多于一行的文档注释 </p>
<p>* 注释 </p>
<p>*/ </p>
<p>private static Object classVar2; </p>
<p>&nbsp;</p>
<p>/** instanceVar1 文档注释 */ </p>
<p>public Object instanceVar1; </p>
<p>&nbsp;</p>
<p>/** instanceVar2 文档注释 */ </p>
<p>protected int instanceVar2; </p>
<p>&nbsp;</p>
<p>/** instanceVar3 文档注释 */ </p>
<p>private Object[] instanceVar3; </p>
<p>&nbsp;</p>
<p>/** </p>
<p>* ...构造器 Blah 文档注释... </p>
<p>*/ </p>
<p>public Blah() { </p>
<p>// ...执行注释 goes here... </p>
<p>} </p>
<p>&nbsp;</p>
<p>/** </p>
<p>* ...方法 doSomething 文档注释... </p>
<p>*/ </p>
<p>public void doSomething() { </p>
<p>// ...执行注释 goes here... </p>
<p>} </p>
<p>&nbsp;</p>
<p>/** </p>
<p>* ...方法 doSomethingElse文档注释.. </p>
<p>* @param someParam参数描述 </p>
<p>*/ </p>
<p>public void doSomethingElse(Object someParam) { </p>
<p>// ...执行注释goes here... </p>
<p>} </p>
<p>} <br></p>
<img src ="http://www.blogjava.net/freeman/aggbug/132311.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/freeman/" target="_blank">我的Java工作经历</a> 2007-07-25 14:49 <a href="http://www.blogjava.net/freeman/archive/2007/07/25/132311.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转帖：myeclipse5.0GA 打开jsp的问题</title><link>http://www.blogjava.net/freeman/archive/2007/07/25/132309.html</link><dc:creator>我的Java工作经历</dc:creator><author>我的Java工作经历</author><pubDate>Wed, 25 Jul 2007 06:44:00 GMT</pubDate><guid>http://www.blogjava.net/freeman/archive/2007/07/25/132309.html</guid><wfw:comment>http://www.blogjava.net/freeman/comments/132309.html</wfw:comment><comments>http://www.blogjava.net/freeman/archive/2007/07/25/132309.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/freeman/comments/commentRss/132309.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/freeman/services/trackbacks/132309.html</trackback:ping><description><![CDATA[<p>myeclipse4.0GA似乎必须要jdk1.5以上版本才可以（因为我开始安装了1.4后，连启动都有问题）。</p>
<p>我现在的环境是eclipse3.2+myeclipse4.0GA，总算可以打开了，不过在打开jsp文件时仍然有问题。<br>Unable to create this part due to an internal error. Reason for the failure: Widget is disposed</p>
<p>org.eclipse.swt.SWTException: Widget is disposed<br>&nbsp;at org.eclipse.swt.SWT.error(SWT.java:3374)<br>&nbsp;at org.eclipse.swt.SWT.error(SWT.java:3297)<br>&nbsp;at org.eclipse.swt.SWT.error(SWT.java:3268)<br>&nbsp;at org.eclipse.swt.widgets.Widget.error(Widget.java:435)<br>&nbsp;at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:330)<br>&nbsp;at org.eclipse.swt.widgets.Control.setLayoutData(Control.java:2386)<br>&nbsp;at com.genuitec.eclipse.webdesigner3.design.DesignEditSystem.createDesignView(DesignEditSystem.java:72)<br>&nbsp;at com.genuitec.eclipse.webdesigner3.WebDesigner3.createDesignView(WebDesigner3.java:73)<br>&nbsp;at com.genuitec.eclipse.webdesigner3.editors.WebDesignerMultiPageEditor.createDesignView(WebDesignerMultiPageEditor.java:392)<br>&nbsp;at com.genuitec.eclipse.webdesigner3.editors.WebDesignerMultiPageEditor.createDesignPage(WebDesignerMultiPageEditor.java:364)<br>&nbsp;at com.genuitec.eclipse.webdesigner3.editors.WebDesignerMultiPageEditor.createPages(WebDesignerMultiPageEditor.java:286)<br>&nbsp;at org.eclipse.ui.part.MultiPageEditorPart.createPartControl(MultiPageEditorPart.java:276)<br>&nbsp;at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:596)<br>&nbsp;at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:372)<br>&nbsp;at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:566)<br>&nbsp;at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:290)<br>&nbsp;at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:140)<br>&nbsp;at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:268)<br>&nbsp;at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)<br>&nbsp;at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:394)<br>&nbsp;at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1144)<br>&nbsp;at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1097)<br>&nbsp;at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:1311)<br>&nbsp;at org.eclipse.ui.internal.PartStack.add(PartStack.java:455)<br>&nbsp;at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:102)<br>&nbsp;at org.eclipse.ui.internal.PartStack.add(PartStack.java:441)<br>&nbsp;at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:111)<br>&nbsp;at org.eclipse.ui.internal.EditorSashContainer.addEditor(EditorSashContainer.java:60)<br>&nbsp;at org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorAreaHelper.java:217)<br>&nbsp;at org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAreaHelper.java:207)<br>&nbsp;at org.eclipse.ui.internal.EditorManager.createEditorTab(EditorManager.java:819)<br>&nbsp;at org.eclipse.ui.internal.EditorManager.openEditorFromDescriptor(EditorManager.java:718)<br>&nbsp;at org.eclipse.ui.internal.EditorManager.openEditor(EditorManager.java:679)<br>&nbsp;at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2586)<br>&nbsp;at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2521)<br>&nbsp;at org.eclipse.ui.internal.WorkbenchPage.access$10(WorkbenchPage.java:2513)<br>&nbsp;at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.java:2498)<br>&nbsp;at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)<br>&nbsp;at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2493)<br>&nbsp;at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2478)<br>&nbsp;at org.eclipse.ui.ide.IDE.openEditor(IDE.java:388)<br>&nbsp;at org.eclipse.ui.ide.IDE.openEditor(IDE.java:350)<br>&nbsp;at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:275)<br>&nbsp;at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:139)<br>&nbsp;at org.eclipse.jdt.internal.ui.actions.OpenActionUtil.open(OpenActionUtil.java:49)<br>&nbsp;at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:190)<br>&nbsp;at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:174)<br>&nbsp;at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:267)<br>&nbsp;at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:243)<br>&nbsp;at org.eclipse.jdt.internal.ui.packageview.PackageExplorerActionGroup.handleOpen(PackageExplorerActionGroup.java:306)<br>&nbsp;at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$4.open(PackageExplorerPart.java:651)<br>&nbsp;at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:817)<br>&nbsp;at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)<br>&nbsp;at org.eclipse.core.runtime.Platform.run(Platform.java:843)<br>&nbsp;at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:44)<br>&nbsp;at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:149)<br>&nbsp;at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:815)<br>&nbsp;at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1069)<br>&nbsp;at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1168)<br>&nbsp;at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:249)<br>&nbsp;at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:243)<br>&nbsp;at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:283)<br>&nbsp;at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)<br>&nbsp;at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:928)<br>&nbsp;at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3348)<br>&nbsp;at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2968)<br>&nbsp;at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1914)<br>&nbsp;at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1878)<br>&nbsp;at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:419)<br>&nbsp;at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)<br>&nbsp;at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)<br>&nbsp;at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)<br>&nbsp;at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)<br>&nbsp;at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)<br>&nbsp;at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)<br>&nbsp;at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)<br>&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br>&nbsp;at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)<br>&nbsp;at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br>&nbsp;at java.lang.reflect.Method.invoke(Unknown Source)<br>&nbsp;at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)<br>&nbsp;at org.eclipse.core.launcher.Main.basicRun(Main.java:280)<br>&nbsp;at org.eclipse.core.launcher.Main.run(Main.java:977)<br>&nbsp;at org.eclipse.core.launcher.Main.main(Main.java:952)<br><br>网络上搜索得到的信息是myeclipse的版本可能和eclipse存在冲突，导致myeclipse的jsp页面设计器无法正确打开，因此，在国外的论坛上，都建议还是使用eclipse3.0来写jsp。</p>
<p>或者，就是不要使用myeclipse的页面设计器（反正对写代码的人而言更多是使用代码视图），因此要将jsp的默认打开方式改成代码试图：<br>window----&gt;perferences-----&gt;General-------&gt;editors------&gt;file associations<br>选择jsp-------&gt;选择相应的editor　为default。也就是把myeclispe jsp editor 设为default（而不是myeclispe visual jsp editor）</p>
<img src ="http://www.blogjava.net/freeman/aggbug/132309.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/freeman/" target="_blank">我的Java工作经历</a> 2007-07-25 14:44 <a href="http://www.blogjava.net/freeman/archive/2007/07/25/132309.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>