我之前是做ASP.NET的,碰到被多个页面都使用的类似组件后,就想着采用ascx(用户自定义组件)来解决,那做Java我也想用这种方案。

我要做的效果如下:

实现方案:tag方式(自定义标签)

1. 首先定义自己的tag

 <%@ tag body-content="scriptless" pageEncoding="UTF-8"%>
<%@ attribute name="table" required="true"%>
<%@ attribute name="idfield" required="true"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set var="base" value="${pageContext.request.contextPath}" />
<c:set var="typeList" />
<script src="<c:url value="/scripts/jquery/jquery.1.10.2.min.js" />"></script>
<form method="post">
<div id="divRecomment">
<fmt:message key="recomment.title" />
&nbsp;&nbsp;
<select id="recommendAction" name="recommendAction">
<c:forEach items="${recommenttype}" var="t">
<option value="${t.key}">${t.value}</option>
</c:forEach>
<select>
&nbsp;&nbsp; <input type="button" onclick="handleRecomment();"
value='<fmt:message key="recomment.submit"/>' class="btn btn-primary" />
</div>
</form>

recommend.tag

2. 使用自定义的标签

<%@ taglib prefix="t" tagdir="/WEB-INF/tags" %>

<t:recommend table="" idfield=""></t:recommend>

3. recommenttype 的数据源:使用页面对应的Controller中的handleRequest

 HashMap<String,String> recommentType = new HashMap<String,String>();
recommentType.put("1", "首页");
recommentType.put("2", "其他");
request.setAttribute(Constants.RECOMMENT_TYPE, recommentType);

handleRequest

附用到的样式

 #divRecomment{
margin-left:12px;
}
#divRecomment select{
width:200px;
height:38px;
border:1px solid #cccccc;
}

main.css

最新文章

  1. 管理Activity 用户在主界面按两次回退退出系统
  2. 一步一步学python(五) -条件 循环和其他语句
  3. 【译】Objectively Speaking 2: A Crash Course in Objective-C for iOS 6
  4. cat: can&#39;t open &#39;/lib/modules/2.6.35.3-571-gcca29a0/modules.dep&#39;: No such file or directory
  5. Android Handler 机制 - Looper,Message,MessageQueue
  6. 一个基于JRTPLIB的轻量级RTSP客户端(myRTSPClient)——收流篇:(三)RTSP命令解析
  7. 201521123061 《Java程序设计》第十三周学习总结
  8. 【翻译】Ext JS 6早期访问版本发布
  9. window 7 安装Jmeter并配置https录制脚本
  10. AXI4 STREAM DATA FIFO
  11. 『字典树 trie』
  12. “数据上帝” Jeff Hammerbacher
  13. python2 里边自定义线程池
  14. python测试开发django-38.多对多(ManyToManyField)查询
  15. linux:C++实现ping
  16. UIView的alpha属性和hidden属性
  17. 在ubuntu16中部署Django使用memcached作为缓存
  18. APP测试功能点总结
  19. css background-position结合disaply:inline-block使用
  20. Got fatal error 1236 from master when reading data from binary log: &#39;Could not find first log file name in binary log index file&#39;

热门文章

  1. 【Knockout.js 学习体验之旅】(2)花式捆绑
  2. AngularJs之六(服务)
  3. 浅谈JavaScript中forEach与each
  4. EF操作MySql
  5. MongoDB下载安装与简单增删改查
  6. MVC5 网站开发之七 用户功能 3用户资料的修改和删除
  7. geotrellis使用(二十四)将Geotrellis移植到CDH中必须要填的若干个坑
  8. 在idea中maven项目jdk编译version总是跳到1.5
  9. 11 个很少人知道但很有用的 Linux 命令
  10. MyCat源码分析系列之——SQL下发