Appfuse:添加自定义页面组件

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

我要做的效果如下:

Appfuse:添加自定义页面组件

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

1. 首先定义自己的tag

Appfuse:添加自定义页面组件
 1 <%@ tag body-content="scriptless" pageEncoding="UTF-8"%>

 2 <%@ attribute name="table" required="true"%>

 3 <%@ attribute name="idfield" required="true"%>

 4 <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>

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

 6 <c:set var="base" value="${pageContext.request.contextPath}" />

 7 <c:set var="typeList" />

 8 <script src="<c:url value="/scripts/jquery/jquery.1.10.2.min.js" />"></script>

 9 <form method="post">

10     <div id="divRecomment">

11         <fmt:message key="recomment.title" />

12         &nbsp;&nbsp;

13         <select id="recommendAction" name="recommendAction">

14             <c:forEach items="${recommenttype}" var="t">

15                 <option value="${t.key}">${t.value}</option>

16             </c:forEach>

17         <select>

18         &nbsp;&nbsp; <input type="button" onclick="handleRecomment();"

19             value='<fmt:message key="recomment.submit"/>' class="btn btn-primary" />

20     </div>

21 </form>
recommend.tag

2. 使用自定义的标签

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

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

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

Appfuse:添加自定义页面组件
1 HashMap<String,String> recommentType = new HashMap<String,String>();

2         recommentType.put("1", "首页");  

3         recommentType.put("2", "其他");   

4         request.setAttribute(Constants.RECOMMENT_TYPE, recommentType);
handleRequest

附用到的样式

Appfuse:添加自定义页面组件
1 #divRecomment{

2     margin-left:12px;

3 }

4 #divRecomment select{

5     width:200px;

6     height:38px;

7     border:1px solid #cccccc;

8 }
main.css

 

你可能感兴趣的:(Appfuse)