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
相关文档:
最近在学jsp,在这里留下印记,以免忘记。
在说jsp里的路径问题前先说下浏览器解析网页的原理。假设你有如下的jsp页面,文件名为text.jsp,文件位于myjsp工程下的webroot里。
<%@ page language="java" pageEncoding="gb2312" %>
......
是在struts2下要解决该问题,需要两个条件:
1、确保该应用为J2EE的应用,即在web.xml下保证有以下配置信息:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSche ......
CGI就是web服务器辅助程序,和servlet是一个作用。
----jsp有什么-----
------------------------------------------------------
jsp可以包括什么:
1、jsp脚本(程序片段):
<% ... %>
2、jsp表达式:
<%= ... %>
3、jsp3种指令:
<%@ page attribute="xxx" %>
<%@ taglib attribut ......
1. RequestDispatcher.forward()
是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个Servlet,JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此时form提交的所有信息在 b.jsp都可以获得,参数自动传递. 但forward()无法重定向至有frame ......