花瓣雨

走自己的路,让自己走得更好!

问题描述:使用showModalDialog打开模式窗口(假设为page1.html),如果在page1.html中执行location.href='page2.html'执行页面跳转,则浏览器会在新窗口中打开page2.html,而不会将page1.html跳转到page2.html;

上述情况,在很多场合下都常遇到,具体解决方法如下:

1、在showModalDialog打开的窗口中放入iframe或frameset,然后在此框架中显示page1.html,此时再在page1.html中执行location.href=‘page2.html’则会正常跳转至page2.html,而不会打开一个新窗口;

2、如果不用iframe显示page1.html,则可以将location.href='page2.html'替换为window.name = "dialogPage"; window.open("page2.html","dialogPage");此时就可以实现正常的页面跳转;查看示例

使用此方法如果是刷新本页面,即window.open('page1.html','dialogPage'),可能会由于页面缓存的原因,而使得页面无法更新;此时可以设置页面不允许缓存(Response.Cache.SetNoStore())解决该问题;

附:

如果在showModalDialog打开的页面page1.html中往父页面传值,可以使用dialogArguments.document.getElementById("目标控件ID").innerHTML进行赋值;

感谢原著:http://www.cnblogs.com/xyd21c/archive/2011/02/16/1955963.html

在使用这个方法时总会报错:

String sql="select id, name, price from product";                               //id的DB类型为bigint    sqlserver 2000

Query query = session.createSQLQuery(sql);                                 

List list = query.setResultTransformer(

Transformers.aliasToBean(ProductInfo.class))                               //VO ProductInfo的id类型是Long

      .setFirstResult(first).setMaxResults(size).list();

这样子使用会有问题,错误如下:

C

JFreeChart中图象的一些设置,见下边的例子:

<%@ page contentType="text/html;charset=GBK"%>

<%@ page import = "org.jfree.chart.ChartFactory,

java.text.SimpleDateFormat,

org.jfree.chart.axis.DateTickUnit,

org.jfree.chart.JFreeChart,

org.jfree.chart.servlet.ServletUtilities,

org.jfree.chart.title.TextTitle,

org.jfree.data.time.TimeSeries,

org.jfree.data.time.Month,

org.jfree.data.time.TimeSeriesCollection,

java.awt.Font,

org.jfree.chart.plot.XYPlot,

java.awt.Color,

org.jfree.chart.renderer.xy.XYLineAndShapeRenderer,

org.jfree.chart.axis.DateAxis"

%>

<%

//访问量统计时间线

TimeSeries timeSeries = new TimeSeries("阿蜜果blog访问量统计", Month.class);

//时间曲线数据集合

TimeSeriesCollection lineDataset = new TimeSeriesCollection();

//构造数据集合

timeSeries.add(new Month(1, 2007), 11200);

timeSeries.add(

if语句的代码的语法非常简单,就是一个 if 判断语句来判断浏览器的类型和版本,使用类似 <!--[if lte IE 6]> 和 <![endif]--> 语法结构包含起来,代表如果浏览器是 IE 并且版本号低于或等于 6.0 则进行提示。类似的语法还有:

<!--[if IE]>

这样使用IE浏览器(全部版本)的人都看得到。

<![endif]-->

<!--[if IE 6]>

这样IE 6.0版本会看得到,只限IE 6.0版本。

<![endif]-->

<!--[if lt IE 6]>

这样IE 6.0以下版本会看得到,不包含6.0。

<![endif]-->

<!--[if lte IE 6]>

这样IE 6.0以下版本会看得到,包含6.0。

<![endif]-->

<!--[if lte IE 8]>

这样IE 8.0以下版本会看得到,包含8.0。

<![endif]-->

<!--[if gt IE 5]>

这样IE 5.0以上版本会看得到,不包含5.0

<![endif]-->

<!--[if gte IE 5]>

这样IE 5.0以上版本会看得到,包含5.0

<![endif]-->

说明:

* gt:greater than (版本号大于)

* lt:less than (版本号小于)

* gte:greater than or equal to (版本号大于等于)

* lte:less than or equal to (版本号小于等于)

非常有用的判断语句,尤其是在有些网页很讲究IE版本的情况下判断是很有用的, 哈哈、

文章图片

IntelliJ IDEA是一款非常优秀的JAVA编辑器,初学都可会对其中的一些做法感到很别扭,刚开始用的时候我也感到很不习惯,在参考了网上一些文章后在这里把我的一些经验写出来,希望初学者能快速适应它,不久你就会感觉到编程是一种享受了。

安装后的一些设置技巧:

1.

如何完美显示中文:Settings->Appearance中勾选Override default fonts by (not recommended),设置Name:NSimSun,Size:12

2.

如何让光标不随意定位:Settings->Editor中去掉Allow placement of caret after end of line。

3.

如何显示行号:Settings->Editor->Appearance标签项,勾选Show line numbers

4.

如何让IntelliJ IDEA动的时候不打开工程文件:Settings->General去掉Reopen last project on startup.

5.

在IntelliJ IDEA中为什么无法起动Tomcat:请使用ZIP版的Tomcat

6.

默认代码提示和补全快捷键跟输入法冲突,如何解决:Settings->Keymap

先copy一份快捷键方案。

再展开。如图:

选择功能,再添加一个新的快捷键

剩下功能,也要改,如上图蓝色字体部分。我只是把原有快捷键中的空格改成了“;”,就是分号,这样会方便很多。

IntelliJ IDEA 5.0 快捷键

来源:acumen1. Ctrl + Space     完成类、方法、变量名称的自动输入

这个快捷键是我最经常使用的快捷键了,它可以完成类、方法

ehcache是Hibernate的二级缓存,Hibernate有两种缓存一种是Session里面的一级缓存,

再有就是第三方的二级缓存,这个必须手工配置,要不然是不会生效的,

用Ehcache并不代表不操作数据库了,而是它会把实体类在内存中放一个缓存, 当不修改数据库时,

它就不用时行数据库操作了,比如说读取的操作,如果进行保存的话,他也会更新缓存的。

配置方法很简单:

在Application.xml里的SessionFactory里加上如下:

<prop key="hibernate.cache.provider_class">

org.hibernate.cache.EhCacheProvider

</prop>

<prop key="hibernate.cache.use_query_cache">true </prop>

<prop key="hibernate.cache.use_second_level_cache">

true

</prop>

这是启用缓存,另外还需要在ClassPath下建立:

ehcache.xml这个文件,里面这样写就行了:

<?xml version="1.0" encoding="UTF-8"?>

<ehcache>

<!-- enable second level cache -->

<diskStore path="java.io.tmpdir" />

<defaultCache maxElementsInMemory="100" eternal="false"

timeToI

文章图片

近日自己做了一个小项目,要用Ext做界面,以前没用过ext,对JavaScript也是一知半解,就边学边做,这是我在这个过程中遇到一个问题的解决过程,欢迎大家批评指正。

一、问题开始

在可编辑表格中有一个日期域,我希望能通过Ext中的日期输入域输入指定格式的日期,以便提交给服务器后方便处理。然而却出现了一些问题。

在这个生产日期列我设置的column model 为

{header:'生产日期',dataIndex:'p_date',editor:new Ext.form.DateField({format:'Y-m-d'})}

然而在这个dateField在输入后日期格式却不正确

输入时:

输入后格式却变了:

二、解决了?

后来我Google了一下,看到有人说datefield定义时应该设置renderer函数,

应该把column model改成这样:

{header:'生产日期 ',dataIndex:'p_date',renderer:Ext.util.Format.dateRenderer('Y-m-d'),editor:new Ext.form.DateField({format:'Y-m-d'})}

我猜测EditorGridPanel在实现可编辑功能的方法应该是,在单元格中插入一个输入框,用户输入后再获取这个输入框中的值,然后调用renderer函数,再把返回值插入到单元格中。

三、不对

此时界面上的问题解决了,可是在服务器上接收到的日期依然是刚开始的那种英文格式,问题还是没有解决。

我就去查看了我写的在EditorGridPanel 的事件响应函数获取日期的代码:

grid.on('afteredit',function(event){

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不需要任何特殊的 API 或工具包。

本文主要是对JS操作JSON的方法做下总结。

在JSON中,有两种结构:对象和数组。

     1. 一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。 名称用引号括起来;值如果是字符串则必须用括号,数值型则不需要。例如:

     var o={"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"};    

     2. 数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。

     例如:

    var jsonranklist=[{"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"},{"xlid":"zd","xldigitid":123456,"topscore":1500,"topplaytime":"2009-11-20&q

1)Foreach组件:

首先,我们接触到的第一Tapestry组件是Foreach组件。Foreach是一个循环组件,它遍历source参数,并在表现其内容前更新value参­数。这是Tapestry组件参数的至关重要特性:将

一个属性与一个组件参数绑定,组件不仅读取被绑定的属性,而且更新属性。

Foreach 组件使用<span>标签,当其表现(render)时,并不直接生成任何HTML 代码。

它仅仅是将其包含的HTML 标签和包含的组件重复表现。

<span jwcid="@Foreach" source="ognl:messageList" value="ognl:item"

index="ognl:foreachIndex">

这里source 参数通过OGNL 从MessageBoard.java 里面的获取getMessageList()方

法:

/** 获取留言列表*/

public List getMessageList() {

return getGuestBookService().findAllMagMessage(maxResult, pageNo,

1);

}

这里返回的是一个List,source 参数可以接收List 类型或者Object[]类型。

findAllMagMessage(maxResult, pageNo, 1) 是我们底层业务的一个方法,传递参数,返回一个包含MagMessage

对象的List。我们是使用spring+Hibernate 作为业务逻

辑层的框架,所以MagMessage 继承于Persistable 对象。

value="ognl:item"通过OGNL 表达式,获取item,而item 的值就是Foreach 在每次循环遍历List