您的位置:首页 > 编程语言 > Java开发

关于myeclipse+freemarker框架开发中的一些总结

2009-12-09 00:12 477 查看
关于myeclipse+freemarker框架开发中的一些总结

2009-03-03
10:33
在开发中总遇到乱码问题。所以自己在网上搜集并摘录在这里,以便以后查询使用。
1.对于在myeclipse中JS注释文字乱码问题
对于乱码问题,主要有MyEclipse的设置有关,可以在MyEclipse的选项卡中找到Editors此选项卡下的jsp选项卡窗口,有一个Encoding属性值,可选择Chinese即可解决显示乱码的问题!对于乱码是不会导致myEclipse语法错误提示的!
现在就重点讲讲导致语法错误的问题解决方案,对于一般的web应用开发,我个人不建议使用myEclipse这个插件,个人推荐使用WTP这个插件,而且目前官网也将此插件结合到Eclipse之中,可见此插件之易用性和可用性。在Eclipse官网上下载Java EE
Developers 这个版本即可!此版本非常适用于WEB项目的开发。此插件可解决上述楼主的所有问题。但不建议与myEclipse一些使用。
2.在使用tomcat服务器时,如在跳转路径中传递中文参数会出现乱码现向!
如:以<a
href=”servlet/LoginServlet?flag=测试”>
和<form name=”form1” action
=”servlet/LoginServlet?flag=”测试” method=“post”>两种方式提交的变量flag在LoginServlet中用request.getParameter(“flag”);时就会出现乱码问题。
解决:在tomcat/conf/servlet.Xml中 加入一段代码:

<Connector port="8090" maxThreads="150"
minSpareThreads="25" maxSpareThreads="75"

              
enableLookups="false" redirectPort="8443"
acceptCount="100"

              
debug="0" connectionTimeout="20000" 

              
disableUploadTimeout="true" URIEncoding="true"/>
3.如果uri中转递的是参数要发送到jsp页面,则必须在接受代码的jsp页面里面还要加入代码:

<% request.setCharacterEncoding("gb2312");%>
4.在.js文件中加入了中文,添加到MyEclipe时就变成乱码了,但是网页能够正确显示中文,但是乱码怎么解决?
在 myeclipse 的
preferences-属性 中搜索 javascript,搜到以后把它的Editing
files 下的 Encoding 改为
Chinese,National Standard 就好了 也就是 GB18030
.
5.对于在浏览器中JS输出文字乱码问题
如果web application的编码规则是utf-8,如网页头中的:

<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8" />
那么js文件中如果有中文输出就会出现乱码,解决此个问题可在引用javascript输出的地方加上charset="gb2312"
或 charset="big5"(假设输出的是Big5繁体字)。
例:

<script type="text/javascript" language="javascript"
src="scripts/output.js"
charset="gb2312"></script>
6.引用多个js文件,inntext输出中文乱码问题
原来写的js文件,从来没有关心过他们的编码问题。可是后来不知怎么的,发现一些单独都好使得文件,被同时引用到一个页面中时,特别是JS里面有中文时。有时候就出现中文在浏览器输出乱码问题。一个一个的看编码。最后找到了原因。
一般我们在中文OS中保存文本文件,默认都是一GB2312编码保存的,可是当我们在脚本代码中写有"?"这些符号后,保存文件会提示让你保存为Unicode格式。如果你不加理会,仍然保存为GB2312,那么下次打开这个文件你会发现"?"变成"?"@_@。这样的字符还有一些,比如在Windows中的高位ASCII字符,它们的Unicode定义就是一些比较怪异的字符,如果用GB2312强行存这些字符,打开后会被两两合并为汉字或成为乱码。
回到我们脚本文件编码的问题上来,如果我们在同一个页面中引用多个JavaScript文件,而这些文件的保存编码又不同(有GB2312有又Unicode),就可能出错。当然不是总都出,这也是最要命的。由于对于7bit
ASCII码,不管什么编码都是通用的,也不会有解码问题,可是如果文件里包含了汉字,就有可能出错了。
比如,GB2312保存的js文件: var str
= '这是一个GB2312编码文件。';

var description = 'this file saved as GB2312 encoding.';    可以在选择编码为GB2312的IE中正确的被引用。
    Unicode编码保存的js文件: var
strW = '这是一个Unicode编码文件。';

var descriptionW = 'this file saved as Unicode encoding.';    可以在选择编码为Unicode的IE中正确的被引用。
   
而这两个文件在下列引用中,不管怎么选择IE编码也是不能正确执行结果:(
<html>

<head>

    <title>Test Encode</title>

    <script src="Unicode.js"
language="javascript"></script>

    <script src="GB2312.js"
language="javascript"></script>

</head>

<body>

<script language="javascript">

    alert(strW + '/r/n' + descriptionW);

    alert(str + '/r/n' + description);

</script>

</body>

</html>

我的解决方法是:还是要和页面的编码保持一致。比如我的ftl文件编码是utf-8的。那么我一般会把JS文件用记事本打开。然后另存。名字不改。只是把下面的编码改为“utf-8”格式的。
然后引用JS<script
src="public/script/toAddUser.js" language="javascript1.2"
charset="gb2312"></script>
然后从新启动服务。问题就解决了!
7.使用freemarker+springMVC的框架,不知道在.ftl文件中如何截取指定长度的中文字符串,freemakert有自己的函数
时期也可以用CSS来控制。但是有一个弊端。就是只能控制显示一行的数据。如果是多行的就不行了。正好我用的是freemarker框架。有自己的函数。否则就要用JS或者是在服务端进行控制
<#if
news.title?length lt 13 >   

       ${news.title} 

       <#else> 

       ${news.title[0..12]}... 

</#if> 
顺便说下:ISO8859-1、utf-8和gb2312的意义
ISO8859-1,通常叫做Latin-1。Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符。 
而gb2312是标准中文字符集。 

UTF-8 是 UNICODE 的一种变长字符编码,即 RFC
3629。简单的说——大字符集。可以解决多种语言文本显示问题,从而实现应用国际化和本地化。 

对系统来讲,UTF-8 编码可以通过屏蔽位和移位操作快速读写,排序更加容易。UTF-8 是字节顺序无关的,它的字节顺序在所有系统中都是一样的。因此 UTF-8 具有更高的性能。 

不过如果是纯英文的话,用什么都可以,用GB2312也没问题。
8.我在重新GHOST我的机器以后,启动myeclips出现“could
not create the java virtual machine”的错误的解决方法
1、在D:/Program
Files/MyEclipse 6.1 Blue/eclipse有个eclipse.ini文件,原来的配置如下:
-showsplash
com.genuitec.myeclipse.blue.product.ide
--launcher.XXMaxPermSize
256m
-vmargs
-Xms128m
-Xmx512m
-Duser.language=en

XX:PermSize=128M
-XX:MaxPermSize=256M

2、现在将原来配置改成如下所示:
-showsplash
com.genuitec.myeclipse.blue.product.ide
--launcher.XXMaxPermSize
256m
-vmargs
-Xms128m
-Xmx512m
-Duser.language=en

-XX:PermSize=64M
//修改此处
-XX:MaxPermSize=128M

只要修改以上代码后,myeclipse便可以启动了
另,此配置eclipse中tomcate 也有,最大内存不可大于自身内存.
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息