java jsp自定义模板_jsp的三种自定义标签 写法示例

1、自定义方法标签

引入方式示例:

写法示例:

1 <?xml version="1.0" encoding="UTF-8"?>

2

3

4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

5 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"

6 version="2.0">

7

8 JSTL 1.1 functions library

9 JSTL functions sys

10 1.1

11 fns

12 http://java.sun.com/jsp/jstl/functionss

13

14

15

16

17 获取字典对象列表

18 getDictList

19 com.sdyy.base.sys.utils.DictUtils

20 java.util.List getDictList(java.lang.String)

21 ${fns:getDictList(typeCode)}

22

23

24

25 获取字典对象列表

26 getDictListJson

27 com.sdyy.base.sys.utils.DictUtils

28 java.lang.String getDictListJson(java.lang.String)

29 ${fns:getDictListJson(typeCode)}

30

31

32

33

34 对象变json

35 toJSONString

36 com.alibaba.fastjson.JSON

37 java.lang.String toJSONString(java.lang.Object)

38

39

function-class就是该方法的实体所在类路径,

function-signature就是该方法的方法名,值得一提的是,这个方法必须是个static方法。

example就是使用方法示例

2、通过jsp自定义标签

如此 tags目录下的sys目录下的jsp形式的tag就会自动被加载,标签jsp写法示例:

1

2

3

4

5

6

7

8

9

10 请选择...

11

12

13 ${dict.TEXT}14

15

16

如此,jsp名就是标签名,例如这个jsp叫 select.jsp,那么它的用法就是

3、通过tld文件和java代码自定义元素标签

引入方式和1相同,写法示例如下:

1 <?xml version="1.0" encoding="UTF-8"?>

2 "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">

4

5 1.0

6 2.0

7 bgt

8

9 http://www.sdyy.tag

10

11 hasUrlPerm

12 com.sdyy.common.tags.HasUrlPermissionTag

13

14 link

15 false

16 true

17 java.lang.String

18 示例:acApplication/forMain.do

19

20

21

22

A、【判断标签】HasUrlPermissionTag标签是一个判断标签,通过该标签来决定标签包裹的内容是否显示,写法如下:

1 packagecom.sdyy.common.tags;2

3

4

5 importjavax.servlet.http.HttpServletRequest;6 importjavax.servlet.jsp.JspException;7 importjavax.servlet.jsp.tagext.BodyTagSupport;8

9 importcom.sdyy.common.spring.interceptor.PermissionInterceptor;10 /**

11 *12 * @ClassName: HasUrlPermissionTag13 * @Description: 根据url判断权限标签14 *@author: liuyx15 * @date: 2015年12月21日上午11:15:3216 */

17 public class HasUrlPermissionTag extendsBodyTagSupport {18

19 private String link;//acApplication/forMain.do

20

21 @Override22 public int doStartTag() throws JspException { //在标签开始处出发该方法

23

24 HttpServletRequest request=(HttpServletRequest) pageContext.getRequest();25 //获取session中存放的权限26

27 //判断是否有权限访问

28 if(PermissionInterceptor.isOperCanAccess(request, link)) {29 //允许访问标签body

30 return BodyTagSupport.EVAL_BODY_INCLUDE;//返回此则执行标签body中内容,SKIP_BODY则不执行

31 } else{32 returnBodyTagSupport.SKIP_BODY;33 }34

35 }36

37 @Override38 public int doEndTag() throwsJspException {39 returnBodyTagSupport.EVAL_BODY_INCLUDE;40 }41

42 publicString getLink() {43 returnlink;44 }45

46 public voidsetLink(String link) {47 this.link =link;48 }49

50 }

在JSP中的使用方式:

tttttttttttttttttest

B、【控件标签】,这种标签直接返回一个控件,不过是通过java代码生成的控件内容,写法示例:

1 packagecom.sdyy.common.tags;2

3 importjava.io.IOException;4 importjava.util.ArrayList;5 importjava.util.List;6

7 importjavax.servlet.jsp.JspTagException;8 importjavax.servlet.jsp.JspWriter;9 importjavax.servlet.jsp.tagext.BodyTagSupport;10

11 /*import com.sdyy.base.ac.ac_permission.model.AcPermission;*/

12

13 public class ButtonUrlTag extendsBodyTagSupport {14 private static final long serialVersionUID = -7811902545513255473L;15

16

17 //标签属性用户名

18 private String user = null;19 //标签属性操作url

20 private String url = null;21 //标签属性 js方法

22 private String jsmethod = null;23 //标签属性image 按钮图片

24 private String image = null;25 //标签属性 alt 提示

26 private String alt = null;27 //标签属性操作value 按钮文本

28 private String value = null;29

30

31

32

33 /*标签初始方法*/

34 public int doStartTag() throwsJspTagException{35 return super.EVAL_BODY_INCLUDE;36 }37

38

39 /*标签结束方法*/

40 public int doEndTag() throwsJspTagException{41 pageContext.getSession();42 Boolean b = false;43 List list = newArrayList();44 /*AcPermission p = new AcPermission();*/

45 /*JDBCHibernate jdbca = new JDBCHibernate();*/

46 try{47 /*list = jdbca.getHaveURLByUsernameList(user);*/

48 } catch(Exception e1) {49 //TODO Auto-generated catch block

50 e1.printStackTrace();51 }52 for(int i = 0;i < list.size(); i++){53 /*p = (AcPermission) list.get(i);*/

54 if(1==1) {//p.getUrl().trim().equals(url.trim())){

55 b = true;56 //如果jsmethod属性不为null 则把超链接href改为调用js

57 if(jsmethod!=null){58 url =jsmethod;59 }60 }61 }62 JspWriter out =pageContext.getOut();63 if(b){64 try{65 //有权限 显示操作按钮

66 out.println("" + alt +"" + value + "");67 } catch(IOException e) {68 e.printStackTrace();69 }70 }71

72 return super.SKIP_BODY;73 }74

75 /*释放资源*/

76 public voidrelease(){77 super.release();78 }79

80

81 publicString getUser() {82 returnuser;83 }84

85

86 public voidsetUser(String user) {87 this.user =user;88 }89

90

91 publicString getUrl() {92 returnurl;93 }94

95

96 public voidsetUrl(String url) {97 this.url =url;98 }99

100

101 publicString getImage() {102 returnimage;103 }104

105

106 public voidsetImage(String image) {107 this.image =image;108 }109

110

111 publicString getAlt() {112 returnalt;113 }114

115

116 public voidsetAlt(String alt) {117 this.alt =alt;118 }119

120

121 publicString getValue() {122 returnvalue;123 }124

125

126 public voidsetValue(String value) {127 this.value =value;128 }129

130 publicString getJsmethod() {131 returnjsmethod;132 }133

134

135 public voidsetJsmethod(String jsmethod) {136 this.jsmethod =jsmethod;137 }138 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JSP 页面中,模糊查询通常使用表单提交的方式,在后台使用 SSM 框架的 MyBatis 实现数据库查询。以下是一个简单的示例: 1. 在 JSP 页面中,添加一个表单用于输入查询条件 ```html <form method="get" action="${pageContext.request.contextPath}/search"> <input type="text" name="keyword" placeholder="请输入关键词"> <button type="submit">查询</button> </form> ``` 2. 在后台的 Controller 中,获取前端传来的查询条件,并传递给 MyBatis 进行模糊查询 ```java @RequestMapping("/search") public ModelAndView search(@RequestParam String keyword) { List<User> userList = userService.searchUser(keyword); ModelAndView mav = new ModelAndView("user-list"); mav.addObject("userList", userList); return mav; } ``` 3. 在 Service 层中,调用 MyBatis 进行模糊查询 ```java public List<User> searchUser(String keyword) { return userDao.searchUser("%" + keyword + "%"); } ``` 4. 在 MyBatis 的 Mapper 文件中,编写模糊查询的 SQL 语句 ```xml <select id="searchUser" resultType="User"> SELECT * FROM user WHERE name LIKE #{keyword} OR email LIKE #{keyword} </select> ``` 注意,这里使用了 `#{}` 占位符,可以避免 SQL 注入的问题。同时,在查询条件的两端添加了 `%`,表示要进行模糊查询。 最后,在 JSP 页面中展示查询结果。可以使用 JSTL 标签库中的 `<c:forEach>` 标签遍历查询结果。 ```html <table> <tr> <th>姓名</th> <th>邮箱</th> <th>性别</th> </tr> <c:forEach var="user" items="${userList}"> <tr> <td>${user.name}</td> <td>${user.email}</td> <td>${user.gender}</td> </tr> </c:forEach> </table> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值