Java Web程序设计
4.在FreeMarker中如何格式化数字?
答案:
在FreeMarker中可使用#{expre;format}这种形式格式化数字,其中的format使用mN或MN表示,mN代表小数部分最小N位,MN代表小数部分最大N位。
5.使用Velocity模板在控制台输出一本图书的相关信息。
实例内容:在控制台输出图书的id、图书的名称、图书的作者、图书的价格、图书的出版社、图书的 出版日期,要求使用方法赋值的方式给各个属性赋值。
答案:
(1)创建一个Java工程,名称为booksys,导入工程所需的jar文件velocity-dep-1.5.jar。
(2)在工程下创建模板文件showBookInfo.vm,该模板文件可输出图书的相关信息,模板文件的代码如下:
图书id: $book.bookid 图书名称:$book.bookname 图书作者:$book.bookauthor 图书价格:$book.bookprice 出版社: $book.bookcencern 出版日期:$book.bookdate
(3)在工程的sunyang包下创建一个类Book.java,该类为一个JavaBean,代表图书的相关信息。类Book的代码如下:
public class Book {
–16–
private int bookid; //id号 private String bookname; //书名 private String bookauthor; //作者 private double bookprice; //价格 private String bookcencern; //出版社 private String bookdate; //出版日期 public int getBookid() { }
public void setBookid(int bookid) { }
public String getBookname() { }
public void setBookname(String bookname) { }
this.bookname = bookname; return bookname; this.bookid = bookid; return bookid;
}
public String getBookauthor() { }
public void setBookauthor(String bookauthor) { }
public double getBookprice() { }
public void setBookprice(double bookprice) { }
public String getBookcencern() { }
public void setBookcencern(String bookcencern) { }
public String getBookdate() { }
public void setBookdate(String bookdate) { }
this.bookdate = bookdate; return bookdate;
this.bookcencern = bookcencern; return bookcencern; this.bookprice = bookprice; return bookprice;
this.bookauthor = bookauthor; return bookauthor;
(4)在工程的sunyang包下创建一个类BookVelocity.java,该类用来给模板提供值。类BookVelocity的代码如下:
import java.io.StringWriter;
import org.apache.velocity.VelocityContext; import org.apache.velocity.app.Velocity; public class BookVelocity{
public static void main(String[] args) {
try { }
VelocityContext context = new VelocityContext();// 初始化Velocity上下文
Velocity.init();//初始化Velocity引擎 e.printStackTrace(); } catch (Exception e) {
.专业.专注.
Java Web程序设计
} }
Book book=new Book(); //给Book属性赋值 book.setBookid(200803);
book.setBookname(\教程\book.setBookauthor(\book.setBookprice(53.2); book.setBookcencern(\出版社\book.setBookdate(\
context.put(\将Book对象放入Velocity上下文中 StringWriter writer = new StringWriter(); try {
//把模板和上下文结合起来 }
System.out.println(writer.toString());//控制台上输出
Velocity.mergeTemplate(\e.printStackTrace(); } catch (Exception e) {
(4)运行程序,控制台上的输出结果如下图所示:
6.使用FreeMarker编写一个用户登录实例。
实例内容:当用户在登录页面中没有输入任何信息就登录时,提示用户需要输入用户名和密码方可登录,若用户输入错误的用户名或密码,提示用户输入的用户名或密码错误,若用户输入正确的用户名和密码,登录成功,页面跳转到欢迎用户登录页面。
(1)创建一个Web工程,名称为login,导入工程所需的jar文件,
(2)在WebRoot下新建一个文件夹freemarker,在freemarker创建模板文件login.ftl、welcome.ftl和error.ftl,其中login.ftl为用户登录页面,welcome.ftl为欢迎页面,error.ftl为登录失败页面。login.ftl的代码如下:
–18–