如何实现利用EL表达式去获取用户头像

来源:互联网 发布:知否小说全文免费阅读 编辑:程序博客网 时间:2024/05/14 11:25

结束了为期两个星期的小项目,总结一下。

首先说一下项目需求,本项目是一个类似于知乎一样的系统,用户登录以后需要从数据库中获取用户信息,例如头像。如何获取呢?

登录成功后将User user存入session,这个user中的信息是从tb_user中读取的,tb_user中存有用户名、密码、手机、邮箱等信息,用户还有一些其他信息,为了防止一张表过于复杂,我将头像、等级等一些信息放在tb_user_info这张表中。

解决方案一、

将user存入session中的同时,从数据库中读取对应得userinfo信息,也将其封装成一个对象存入session,用的时候就取session就好了,但是感觉这个方法有点low,呵呵呵.....


解决方案二、

先贴出bean吧:

public class UserInfo {private String id;private String username;private String nickname;private String photo;private String signature;private int rate;}

public class User {private String id;private String username;private String password;private String mobile;private String email;private boolean validation;private boolean forbid;}

下面就利用EL表达式去调用java代码了:

1.首先写一个java类,其中有个静态方法:

public static UserInfo getUserInfo(User user){UserInfoDao dao = new UserInfoDaoImpl();UserInfo info = null;if(user!=null)<span style="white-space:pre"></span>info= dao.findByUser(user);//此方法传入user,获取userinfo对象return info;}
注意这个方法必须为静态的。

2.在WEB-INF下新建一个tld文件

<taglib xmlns="http://java.sun.com/xml/ns/javaee"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"    version="2.1">      <description>自定义函数,让EL表达式调用</description>  <display-name>custom fn</display-name>  <tlib-version>1.0</tlib-version>  <short-name>fn</short-name>  <uri>/niit</uri>  <function>  <name>getUserInfo</name>  <function-class>com.niit.utils.utils</function-class>  <function-signature>com.niit.bean.UserInfo getUserInfo(com.niit.bean.User){</function-signature>  </function></taglib>
3.在页面中调用自定义函数:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@taglib uri="/niit" prefix="fn"%>  <!-- 注意此处一定要引入自定义标签 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>你好,${user.username}</title></head><body><img src="${fn:getUserInfo(user).photo}"></body></html>
基本就这样,其实不只是为了这个项目,也为了去练习一下EL表达式吧,即EL表达式调用自定义函数

0 0
原创粉丝点击