jsp、action以及js之间的传值问题2

1、action和jsp的传值

若定义action如下:

<action name="aaa">
                        <result>/a/b/c.jsp</result>
        </action>

那么执行aaa.do?b=3时,c.jsp已经获得了b=3的参数。

2、js和jsp的传值

假如某个页面(无论是上面的情况,还是某个jsp给次jsp传的值,或者值某个action跳转到此jsp)给jsp传值b=3。

在本jsp内的js代码都可以以

var c=’<%=request.getParameter("b")%>’;来获得参数b的值。

Tomcat缓存解决方案

    这一段时间都在做jsp开发,用的Tomcat容器。开发后台java代码的时候,Tomcat需要重启,我也就忍了。在做前台jsp和js的时候,发现基本上都会缓存,每次都得删掉缓存,然后重启一下(因为删掉缓存后有些页面会出错,尤其是有输入框的页面)。这样每次都重启效率多低啊。

    后来在网上搜索了一些方法,加上自己的实践,现针对Tomcat对jsp和js的缓存,提出以下解决办法:

1、删除缓存

Tomcat对jsp和js的缓存放在 

jakarta-tomcat-5.0.28/work/Catalina目录下,所以将Catalina目录删掉即可。

2、jsp加代码

忘jsp或者引用js的jsp里加上如下代码:

<%    
  response.setHeader("Pragma","No-cache");    
  response.setHeader("Cache-Control","no-cache");    
  response.setDateHeader("Expires",   0);    
  %>

此方法可以保证大部分的jsp都不缓存。

3、投机取巧法

在jsp后面加随机数

xxx.com/aaa/bbb.jsp?temp=123456

Windows7中使用Windows Live Writer无法插入网络图片

 

    个人非常喜欢使用windows live writer来写日志,虽然网上好多人都说它如何如何的难用。但是,那种淡淡地蓝色,很能够激发起我写日志的激情和灵感。

    可是就在昨天一个郁闷的事情发生了,win7下windows live writer竟然不能直接插入网络照片。

    小郁闷了一下,自己的经验加上google后,现提出以下三种解决方式:

    1.使用html语言标记,点击“源代码”,然后插入如下代码:

<img src="http://www.haoziyanwo.com/haozi.png" alt="图片"  title="鼠标在图片上时显示的文字" width=”100” height=”100”/>

其中src为你要插入的图片,必须要填

title为鼠标在图片上时显示的文字,可选

width为宽,可选

height为高,可选

    这种方式还是很不方便的,特别是对于非IT人士,还是很郁闷的额。

    2.图片浏览框内直接使用图片url

就是直接点击插入图片,将图片的额url填进“文件名”,之后就可以了。这种方法其实是先将网络图片下载到本地,然后再上传的。速度还是有点慢,有点不方便,不直观。

    3.使用插件InsertWebImageForWin7.dll

    插件下载地址:http://www.box.net/shared/lraq7z94q5

    备用下载地址:http://cid-fabdddc5cad93494.skydrive.live.com/self.aspx/Writer%20Plugins/InsertWebImageForWin7.zip

   下载后解压出InsertWebImageForWin7.dll,将其放置到c:\program files\windows live\writer\plugins\下,重启windows live writer即可。

注意:c:\program files\windows live\writer\plugins\这个路径要根据你安装writer的路径不同而不同。

IE下的js调试工具:Companion.JS

 

    一直以来做项目都是在firefox下调试的,现在为了做发布版本,在ie下测试竟然发现主页无法显示,这一个郁闷啊。经分析应该是js在ie下不兼容。可是firefox还有个firebug可以用,ie下怎么调试js啊。

    上网搜了搜,还国人有ie下的轻量级的js调试器,Companion.JS。

    个人用了用,感觉还不错,它有以下几个功能:

  • 1、JavaScript详细的错误报告,例如调用堆栈,调用JS文件名称等
    2、类似FireBug的交互式调试窗口
    3、可以在运行期观察JavaScript对象

    它不是单独使用的,它是作为ie的插件来安装使用的,而且需要结合Microsoft Script Debugger使用。也即IE Developer Toolbar + Fiddler2 + Companion.JS组合。这也算是还不错的ie下的js调试环境了。

    废话不多说,介绍安装使用方法:

1、先下载Companion.JS安装文件,然后安装。

    官网地址:http://www.my-debugbar.com/wiki/CompanionJS/HomePage

    下载地址:http://www.my-debugbar.com/wiki/uploads/CompanionJS/install-companionjs-v0.5.3.exe
2、下载安装Microsoft Script Debugger,如果您的机器已经安装过了就可以免过这一步。

     下载地址:http://download.microsoft.com/download/7/7/d/77d8df05-6fbc-4718-a319-be14317a6811/scd10en.exe
3、打开IE菜单“工具”–“Internet选项”–“高级”,找到“禁用脚本调试(Internet Explorer)”和“禁用脚本调试(在Internet Explorer之外)”,将两个选项前面的对钩都去掉,然后重启IE。
4、在Ie中输入:http://www.my-debugbar.com/wiki/uploads/CompanionJS/dummy.htm,然后点击click me链接,如果左上角弹出一个小错误提示或下面控制台出现了错误信息提示,就说明您已经安装成功了。如下图。

spring的default-lazy-init参数

    spring在启动的时候,会默认加载会默认加载整个对象实例图,从初始化ACTION配置、到 service配置到dao配置、乃至到数据库连接、事务等等。这样可以减少web服务器在运行时的负担,但是对于开发者来说无疑是效率极低的一个设置了。

    还好,spring提供了default-lazy-init属性,其配置形式如下,applicationContext.xml中:

< beans  default-lazy-init ="true" >  
      < bean  class ="org.xxxx.bean" >  

      。。。。。。

</beans>

    spring配置默认default-lazy-init为false,当配置为true时sping不会再去加载整个对象实例图,大大减少了初始化的时间,减少了spring的启动速度。

    这样做只是为了在开发过程中节约启动时间,在部署到实际环境中,倒是没必要设置default-lazy-init为true。毕竟部署到实际环境中不是经常的事,每次启动1分钟倒不是大问题,而且可以提高服务器效率。

    当然,也不是所有的beans都能设置default-lazy-init成为true.对于scheduler的bean不能用lazy-init  

< beans  default-lazy-init ="true" >  
      < bean  class ="org.springframework.scheduling.quartz.SchedulerFactoryBean" >  
          < property   name ="triggers" >  
              < list >  
                  < ref   bean ="buildHtmlTrigger" />  
                  < ref   bean ="askTrigger" />  
                  < ref   bean ="mailSenderTrigger" />  
                  < ref   bean ="topicDetailBuildTrigger" />  
                  < ref   bean ="forumBuildTrigger" />  
                  < ref   bean ="topicBuildTrigger" />  
              </ list >  
          </ property >  
      </ bean >  
</ beans >  
    这样的话。所有的scheduler就都不管用了。所以请大家要注意。  

参考文献:http://hi.baidu.com/mefeng47/blog/item/03f2baeec41c623aacafd5e6.html

load-on-startup属性的思考

    前几天在配置spring的listener的时候碰见了spring的listener这个参数,其形式如下

<servlet>
<servlet-name>SpringContextServlet</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

    load-on-startup这个属性的意义是在启动的时候,有load-on-startup属性的servlet会被自动加载。load-on-startup从1开始到10,数字越小则代表优先级越高,数字相同的顺序则是随机先后的。

java中int型和string之间的转换

1 如何将字串 String 转换成整数 int? 

有两个方法:

  • 1). int i = Integer.parseInt([String]); 或 
    i = Integer.parseInt([String],[int radix]);
  • 2). int i = Integer.valueOf(my_str).intValue(); 

注: 字串转成 Double, Float, Long 的方法大同小异. 

2 如何将整数 int 转换成字串 String ? 

有三种方法:

  • 1.) String s = String.valueOf(i);
  • 2.) String s = Integer.toString(i); 
  • 3.) String s = "" + i; 

注: Double, Float, Long 转成字串的方法大同小异.

action之间的跳转和传值

常见的方法一共有两种:

一、在action的定义时设置参数对应:

<package name=…>
<action name…>
  <result name="success" type="redirectAction">
    <param name="actionName">action11 </param>
    <param name="namespace">/namespace11 </param>
    <param name="param1">aa1 </param>
    <param name="param2">aa2 </param>
    <param name="param3">aa3 </param>
  </result>
</action>
</package>

二、在action定义跳转时传递参数:

<action name="updateAction" class="userAction" method="saveOrUpdate">
<result name="success" type="redirect">userAction.do?id=${id} </result>
</action>

以上方法还可以用作在跳转的时候向jsp页面传值

jsp、action以及js之间的传值问题

一、jsp向js传值

1、jsp中如下编写

<input type="hidden" id="fid" name="fid" value="${firstId}">

2、js中这样引用

js中直接可以引用 fid 变量使用。如

window.location ="endcontrade.do?fid="+document.getElementById("fid").value;

如果传递的是一个数组的话,可以按如下方式引用变量

window.location ="endcontrade.do?fid="+document.getElementById("fid")[0].value;

 

二、jsp向action传值

1、jsp中如下编写

<input type="hidden" id="tradeid" name="tradeid" value="${id}">

注意:这个和jsp向js传值不同的是,这样写必须放在一个action form中

2、action中直接使用get方法就可以得到tradeid的值。

extjs里this.config[] is undefined

 

问题:extjs中出现this.config[col] is undefined或者this.config[A] is undefined的bug错误

 

问题分析:

    因为在定义表格时,使用了autoExpandColumn : ‘Colum’,使用自动延伸。而自动延伸的那一列’Colum’使用的是该列的id。之所以出现这个错误是因为,名为’Colum’的列没有定义。

解决办法:

在原来定义Colum列加上id

header : ‘Colum’,

dataIndex : ‘xxxxx’,
witdth : 500

id:’Colum’,                      

header : ‘Colum’,

dataIndex : ‘xxxxx’,
witdth : 500

Page 1 of 1512345»10...Last »