java

关于myeclipse+freemarker框架开发中的一些总结
发起投票 | 删除

在开发中总遇到乱码问题。所以自己在网上搜集并摘录在这里,以便以后查询使用。

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 也有,最大内存不可大于自身内存.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值