使用Velocity开发网站思路

aoaoxiong 发布于 2012/06/23 23:06
阅读 1K+
收藏 0

把官方文档看了一遍,基本了解了开发规则,想用Velocity+Servlet开发网站,但整体思路比较模糊,比如页面增删改查都通过JS处理吗?写个Servlet的Controller怎么分发处理?页面使用JSP还是纯.vm? 关于样式自己写css还是直接使用JS UI组件?

有没有什么比较好的解决方法?有来说说的吗?

加载中
0
JustForFly
JustForFly
vm更多只是为了页面的模块化处理,至于servlet、 JS 、CSS,该怎么用还是怎么用。
0
xmdeepdata
xmdeepdata
建议了解spring,完后结合velocity来用
0
aoaoxiong
aoaoxiong

引用来自“yzjiang”的答案

建议了解spring,完后结合velocity来用

我就是想找个简单快速的开发方案,东西太多太烦了

水牛叔叔
水牛叔叔
顶,那些框架没必要用就不用,多了就是害人
0
红薯
红薯
使用vm和使用jsp的思路是一样的,你怎么用jsp就怎么用vm
0
aoaoxiong
aoaoxiong

引用来自“JustForFly”的答案

vm更多只是为了页面的模块化处理,至于servlet、 JS 、CSS,该怎么用还是怎么用。

有没有一个Velocity+Servlet的增删改查的例子啊

@JustForFly

 @红薯

JustForFly
JustForFly
像velocity和freemarker这种模板语言,你可以把它当JSP来看,区别就是,JSP中可以有java代码,vm、fm没有Java代码。另外,如果你是纯servlet开发,需要自己来处理VelocityContext封装数据,如果你使用struts2,就不需要自己处理,完全可以当JSP来使用。
JustForFly
JustForFly
增删改查的逻辑和你之前用jsp+servlet的开发是一样的。 主要的区别不是业务逻辑,而是页面展示。 以前你是将数据封装到request中直接返回给jsp, 现在,你需要将数据封装到VelocityContext中返回到vm,然后vm可以使用自己的标签读取和使用这些数据。
0
aoaoxiong
aoaoxiong

@JustForFly

搜索到一个freemarker增删改查

 

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// 网站全路径
        String basePath = request.getScheme() + "://" + request.getServerName() + ":"
                + request.getServerPort() + request.getContextPath() + File.separator;
        
        // 得到要操作的方法名
        String method = request.getParameter("method");
        PrintWriter out = response.getWriter();
        Template template = null;
        Map map = new HashMap();
        map.put("path", basePath);

        // 查询所有用户
        if (method.equals("queryAll")) {
            List list = new ArrayList();
            list.add(new User("Mike1", "12345"));
            list.add(new User("Mike2", "123453"));
            map.put("list", list);
            template = cfg.getTemplate("WEB-INF/templates/index.ftl");
        }
        // 跳转到添加用户
        if (method.equals("forwardSave")) {
            System.out.println("save");
            template = cfg.getTemplate("WEB-INF/templates/form.ftl");
        }
        // 保存用户
        if (method.equals("save")){
            System.out.println("save");
            System.out.println("save User " + request.getParameter("username"));
            request.getRequestDispatcher("/UserServlet?method=queryAll").forward(request, response);
            return;
        }
        // 删除用户
        if (method.equals("delete")){
            System.out.println("delete User " + request.getParameter("username"));
            request.getRequestDispatcher("/UserServlet?method=queryAll").forward(request, response);
            return;
        }
        // 更新用户前的跳转
        if (method.equals("forwardUpdate")) {
            String username = request.getParameter("username");
            User user = new User(username, "xxx");
            map.put("user", user);
            template = cfg.getTemplate("WEB-INF/templates/update.ftl");
        }
        // 更新用户
        if (method.equals("update")){
            System.out.println("update User " + request.getParameter("username"));
            request.getRequestDispatcher("/UserServlet?method=queryAll").forward(request, response);
            return;
        }
        // 处理map和输出流
        try {
			template.process(map, out);
			out.flush();
	        out.close();
		} catch (TemplateException e) {
			e.printStackTrace();
		}
	}

意思我都没白,只是想看几个设计比较好的例子

 

 

0
aoaoxiong
aoaoxiong
刚才尝试了一种方式:把数据放到request、session、applicaiton,在页面模板中可以直接获取
返回顶部
顶部