利用commons的StringUtils进行非正则表达式的替换
我们知道java.lang.String 的 replace()方法中,第一个参数是正则表达式 如果执行, p("***".replaceAll("*", "1")); //会报错,因为"***"不是合法的正则表达式 应该用 p(StringUtils.replace("***","*", "1")); //打印出"111"
我们知道java.lang.String 的 replace()方法中,第一个参数是正则表达式 如果执行, p("***".replaceAll("*", "1")); //会报错,因为"***"不是合法的正则表达式 应该用 p(StringUtils.replace("***","*", "1")); //打印出"111"
我在页面上用了两个displayTag。 第一个的记录比较多。当在浏览器转到第二页时,出现下面这个异常: java.lang.IndexOutOfBoundsException: fromIndex = -10 而第二个的记录数为0 分析:displayTag翻页时,页面上所有的displayTag元素都要翻一页 现在第二个displayTag记录数为零,根本不支持翻页操作,所以出现异常 不过,如果第二个记录数不为0,而为1(仍不足够分页)。这时如果第一个翻页,第二个也会跟着翻,不会出现异常,只不过什么也不显示 最终解决办法: 对页面中的每个表格,先判断它的记录是否为0,如果为0则不使用displayTag
HibernateDaoSupport这个类有一个方法叫做 getHibernateTemplate(), 你如果经常使用这个方法,就不会对HibernateDaoSupport类陌生了 HibernateDaoSupport有一个方法叫做getSession(),正是这个方法可以获得Session
java api 怎么处理:calendar.add(Calendar.MONTH, 月数) 导致的月末日期溢出问题? 比如 3月31日 加一个月后, 是哪天? 答曰:4月30日 经过多次试验,可以发现: 月数加上之后,如果日期溢出该月最大范围,则自动修正为该月最后一天
比如 "!!!!2!!!4 !!!!".split( "!").length = 8 ,也就是说“4”之后的空字符串没人管了 要解决这个问题,可以用 org.apache.commons.lang.StringUtils.splitPreserveAllTokens 比如,对上面同样的字符串,StringUtils.splitPreserveAllTokens("!!!!2!!!4!!!!", "!").length = 12
抄自QuickServer的源码 private static byte[] toBytes(InputStream _in) throws IOException { byte[] data = null; int s = _in.read(); if (s == -1) { return null; } int alength = _in.available(); if (alength > 0) { data = new byte[alength + 1]; _in.read(data, 1, alength); } else { data = new byte[1]; } data[0] = (byte) s; …
[hibernate] Could not format discriminator value to SQL string…异常 如果discriminator value不是String类型就可能出这种错误,解决办法是在 Class.hbm.xml中的class元素处加上属性:discriminator-value="not null"
如果文件名过长,浏览器就会用URL当文件名(如 /hi.jsp)提示用户下载。因此,在提供下载前,最好截一下文件名。
则应该在提交表单后立即将提交按钮置为灰色,以防止不耐心的用户重复提交
如果页面上存在一个按时间排序的记录列表,当我们增加了一条记录,应该跳转到记录的最后面,以看到刚刚增加的记录;当我们删除了一条记录,应该跳转到被删除记录的原来差不多的地方,以方便用户继续操作。 如果列表是分页的,那么增加记录后应该是跳到最后一页;对于删除记录,删除前应把当前页码记下,删除后跳转到 <b> Min(最后一页,删除前的页码) </b> 可以用 pager-taglib 来实现这两种机制。首先,它可以分页,可以让我们免于自己实现分页;其次,利用它分页后想跳转到某页只须在 url 里加上 pager.offset = 某页 即可,方便程序的实现。 具体的实现方法: 1.增加记录 a.用户提交“增加记录”的表单,表单域中需包含隐藏变量:“每页记录数” b.服务器增加记录后,从数据库中算出记录的总数 c.利用每页记录数和记录总数算出最后一页的pager.offset值 d.跳转到该页 2.删除记录 a.用户提交“删除记录”的表单,表单域中需包含隐藏变量:“每页记录数”和“当前页码” b.服务器删除记录后,从数据库中算出记录的总数 c.利用每页记录数和记录总数算出最后一页的pager.offset值 d.求出 最后一页的页码 和 删除前的页码 中间的较小值 e.跳转到这个较小值所代表的页面 DisplayTag为什么不行? 因为利用它分页后如果想跳到某页,在url里要加上的东西是不确定的,URL中它的分页参数名值对 有时是 d-48098-p = 某页, 有时是 d-23456-p …