存档

‘Web开发’ 分类的存档

Java Web JSTL 示例

2016年3月4日 没有评论

今天开始做管理后台中一个页面。管理后台视图技术用的是 JSP + JSTL。好久不写了,好多地方搞的不是特别清楚。所以,写代码就各种查。D瓜哥做了汇总,省得以后还要东找西找!

简单配置

需要在使用的页面加上相应的标签声明:

<%@ taglib prefix="c"   uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="fn"  uri="http://java.sun.com/jsp/jstl/functions" %>

判断对象是否 阅读全文…

Spring JdbcTemplate 具名参数使用简介

2016年2月28日 2 条评论

公司原有项目中,因为以前赶时间,有些地方做的稍微粗糙了一些,某些地方存在 N+1查询问题。最近这两个月再做一个新项目。所有,以前踩过的坑,希望这次能尽量避免。比如 N+1查询问题

公司技术方面,Dao 层使用的是 Spring JdbcTemplate;数据库使用的是 MySQL。所以,关于这次的主题,D瓜哥 也只关注 Spring JdbcTemplate 和 MySQL。

从出坑到入坑

讲述解决办法之前,D瓜哥 先说明一下背景问题:一个订单 Order 中,会有多个订单元素 OrderItem,在查看订单列表时,需要根据订单 ID 查询相关的订单元素信息。查询方式有两种:一、在循环中,每次循环根据一个订单 ID 查询一个订单对应的订单元素信息。这就是典型的 N+1查询问题。另外一种方式,根据查询出来的所有的订单 ID 一次查询出所有相关的订单元素信息。显然,第二种方式要比第一种方式效率上高很多。这是基本的背景问题。下面来说明一下 D瓜哥 在解决这个问题过程中犯的错误以及更好的解决办法。

看到上述问题时,D瓜哥的第一反应就是使用 IN 就可以很好地解决。开始噼里啪啦写代码:

String sql = " SELECT * " +
        " FROM `order_item` " +
        " WHERE order_id IN ( ? )";

List<OrderItem> orderItemList = getJdbcTemplate().query(sql, new BeanPropertyRowMapper<OrderItem>(OrderItem.class), orderItemArray);

结果一运行,代码妥妥地 阅读全文…

在 Velocity 中判断对象为 null

2016年2月25日 没有评论

在写 Java 项目时,很多时候我们都必须判断一下对象是否为 null。这个在 Java 代码中,很容易实现。在使用 Velocity 的 Java Web 项目中,很多时候,需要在 Velocity 的模板中,判断一个对象是否为空。那么这时,该如何判断呢?今天D瓜哥就来给大家简单介绍介绍!

方式一

事实上,在 Velocity 中 null 对象是作为 阅读全文…

在 Velocity 模板中访问常量

2016年2月25日 没有评论

最近项目中一个问题:在常量类 GlobalConstants 中定义了许多关于订单状态的常量(使用public static final 修饰),这些常量,某些情况也许有在 Velocity 模板中访问。请问,该如何访问?

由上面的问题,引申出另外一个问题:又该如何访问静态方法呢?

今天先来解决其中的一个问题。

访问常量

Velocity Tool 中提供了相应的 阅读全文…

昨天面试被问到的一些问题

2013年10月15日 2 条评论

昨天D瓜哥参加了一个Java工程师面试,具体公司名称就不透露了。感觉被问的问题挺有代表性。简单整理一下,发布出来,给需要的朋友一个参考吧。暂时没有解答,抱歉!

  1. 以前工作中收获最大的一次经历是什么?
    这里只说明一下收获吧。

    1. 高性能网站的十四条黄金法则
    2. 高性能JavaScript
  2. 所需知识哪些 阅读全文…

如何在Rails中建立后台管理页面?

2013年7月30日 3 条评论

最近在帮朋友做个小网站。因为感觉Rails太好玩了。所以,就准备使用Rails来搞。但是,有时因为D瓜哥刚刚学习Rails。所以,就遇到了各种各样的诡异问题。今天就来讲解一个D瓜哥纳闷很久的问题: 如何让前台浏览页面和后台管理页面使用不同的layout(窃译为“布局”)文件?

前人的肩膀 阅读全文…

实例简介Markdown格式

2013年7月16日 2 条评论

简介

Markdown 是一种轻量级标记语言,由John Gruber和Aaron Swartz创建,使其成为可读性最大并可再发行的可输入输出的格式。

Markdown 并不是为了取代 Html,因为根本取代不了。Markdown 的理念是,
能让文档更容易读、写和随意改。HTML 是一种发布的格式,Markdown 阅读全文…

分类: Web开发, 挨踢(IT) 标签: ,

《Agile Web Development with Rails》抄书笔记(14):购物车靠边

2013年6月27日 没有评论

《Agile Web Development with Rails》抄书笔记系列

  “《Agile Web Development with Rails》抄书笔记系列”目录

  上一节提到,客户希望我们的网店使用Ajax来实现。那么神马是Ajax呢?

  在过去(2005年以前),浏览器被我们当作一个聋哑人。当我们开发一个基于浏览器的应用时,我们会发送一个页面到浏览器,然后忽略这次会话。曾几何时,用户填写一些表单信息,然后点击链接,接着应用被进来的请求唤醒,开始处理请求。最后,应用返回一个完整页面给用户,冗长的处理过程还要再度开始。在此之前,我们的Depot应用也是如此。

  但是,事实上浏览器并非是一个聋哑人。浏览器也可以运行代码,几乎所有的浏览器都可以运行JavaScript。另外,经试验证明,JavaScript可以在幕后和服务器进行交互,更新页面。 Jesse James Garrett将 阅读全文…

《Agile Web Development with Rails》抄书笔记(13):清空购物车

2013年6月18日 没有评论

《Agile Web Development with Rails》抄书笔记系列

  “《Agile Web Development with Rails》抄书笔记系列”目录

  上一节,我们介绍了如何进行错误处理。另外,既然可以向购物车中添加商品,那么清空购物车也是一个必要的功能。我们这节来实现清空购物车的功能。

D呱呱

  关于这节内容的代码:

  1. 这节开始之前:https://github.com/diguage/depot/tree/v-10.2
  2. 这节完成之后:https://github.com/diguage/depot/tree/v-10.3

  要实现清空购物车的功能,那么我们必须 阅读全文…

“《Agile Web Development with Rails》抄书笔记系列”目录

2013年6月18日 没有评论