您的位置:首页 > 其它

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

2014-11-25 18:03 483 查看
结束了为期两个星期的小项目,总结一下。


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

登录成功后将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表达式调用自定义函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐