css+jsp tag实现树型菜单
我们的开发方式是由demo人员完成系统的静态页面,并通过css进行美化。
为最大可能利用美工完成的静态页面,我们需要尽量减少对原html的冲击,因此我首先想到的Freemarker。
但是Freemarker最终让我空喜一场,最终自定义了一个可以递归嵌套的jsp tag来达到这个目的。
下面是解决这个问题的过程:
用css模版sdmenu来实现系统菜单,静态html如下格式:
<div style="float: left" id="my_menu" class="sdmenu">
<div>
<span>Email Template</span>
<a href="#" target="mainFrame">Welcome Notes</a>
<a href="#" target="mainFrame">Deposit Reminder</a>
<a href="#" target="mainFrame">Final Payment</a>
<a href="#" target="mainFrame">Recommendation Message</a>
</div>
<div>
<span>Parameter Manage</span>
<a href="#" target="mainFrame">List all parameters</a>
</div>
……
</div>
开始准备用Freemarker来搞定,设计Freemarker模版格式为:(定义desc是x对象下面个一个list属性)
<#list listObj as x>
x
<#list ${x.desc} as y>
y
</#list>
</#list>
原来担心<#list>,不能支持嵌套,结果用1..count的循环方式,发现完全可以嵌套循环,暗喜。
但是很快,不幸的事情还是出现了,Freemarker不支持<#list ${x.desc} as y>这样写。
一时愤怒,准备改写Freemarker,但是想想改了,也不知道怎么提交到Freemarker项目中。
还是不做那根葱算了。
纠结之后,决定自定义tag来解决这个问题。
先设计tag的写法
<ui:list listName="list" scope="request">
<div>
<span>__menuName__</span>
<ui:list listName="sublist" scope="parent
相关文档:
1.request对象
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
序号 方 法 说 明
1 object getAttribute(String name) 返回指定属性的属性值
2 Enumeration getAttributeNames() 返回所有可用属性名的枚举
3 String getCharacterEncodin ......
最近在学jsp,在这里留下印记,以免忘记。
在说jsp里的路径问题前先说下浏览器解析网页的原理。假设你有如下的jsp页面,文件名为text.jsp,文件位于myjsp工程下的webroot里。
<%@ page language="java" pageEncoding="gb2312" %>
......
简单的连接数据库的测试代码
<%@ page import="java.lang.*, java.io.*, java.sql.*, java.util.*" contentType="text/html;charset=gb2312" %>
<html>
<body>
<% Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:m ......
一般jsp脚本都是在<%= %>中输出东西,但是如果要提示的话,则必须后面要加一个空格,就像那个符号一样,不然的话打的提示不会出来
还有一个事关于路径问题:必须要在后面加上"/"这个反斜杠
myeclipse 中有一个snippets视图,这个里面提供一些已经写好了的代码,我们也可以将自己的一些代码添加到snippets中,右键,a ......
元问题来自JSP与Servlet的比较。
我们知道Servlet能够使得JAVA代码不用像Applet那样在客户浏览器中运行,它会在你控制的一个应用服务器上运行。在没有什么背景知识的前提下我默认这是一种规则,即Servlet就是这样发展起来的。在实际应用中当我们请求一个JSP页面的时候,JSP首先被转 ......