firstpage.java

来自「Tapestry是一个基于控件的框架以致于用它开发Web应用类似开发传统的GUI」· Java 代码 · 共 95 行

JAVA
95
字号
/*
 * 创建日期 2005-2-2
 *
 * 更改所生成文件模板为
 * 窗口 > 首选项 > Java > 代码生成 > 代码和注释
 */
package com.tapestry;

import java.util.ArrayList;
import java.util.List;

import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.event.PageEvent;
import org.apache.tapestry.event.PageRenderListener;
import org.apache.tapestry.html.BasePage;

/**
 * @author ADong
 *
 * 更改所生成类型注释的模板为
 * 窗口 > 首选项 > Java > 代码生成 > 代码和注释
 */
public abstract class FirstPage
	extends BasePage
	implements PageRenderListener {

	public abstract List getFruitList();
	public abstract void setFruitList(List list);

	/** 这个方法用于初始化成员变量 */
	protected void initialize() {
		amount = "0";
		foreachIndex = 0;
	}

	public String amount;
	public int foreachIndex;

	/** 当页面表现之前,首先运行这个方法 */
	public void pageBeginRender(PageEvent event) {
		List list = this.getFruitList();
		if (list == null) {
			list = new ArrayList();
			list.add(this.createFruits("橘子", 3.00));
			list.add(this.createFruits("李子", 5.50));
			list.add(this.createFruits("苹果", 4.20));
			list.add(this.createFruits("西瓜", 0.80));
		}
		this.setFruitList(list);
	}

	protected Fruits createFruits(String name, double price) {
		return new Fruits(name, price);
	}

	public void buyFruits(IRequestCycle cycle) {

		int i = Integer.parseInt(this.getAmount());
		//这个监听方法触发时,从Foreach的index参数获取当前索引
		Fruits fruit =
			(Fruits) (this.getFruitList().get(this.getForeachIndex()));
		fruit.setAmount(i);

		double money = fruit.getPrice() * i; //计算当前这单买卖的费用。

		Visit visit = (Visit) this.getPage().getVisit();
		visit.getBuyFruitList().add(fruit); //将用户购买的水果清单存入Visit对象。
		if (visit.getPayMoney() == 0) //如果用户第一次访问购物车,则visit对象中payMoney应该为null
			visit.setPayMoney(money);
		else
			money += visit.getPayMoney();//若不是第一次访问购物车,则visit对象中的payMoney加上当前的花费,即为总费用。

		//跳转到下一个页面,并将值赋过去。
		SecondPage page = (SecondPage) cycle.getPage("SecondPage");
		page.setPayMoney(money);
		cycle.activate(page);

	}

	/**
	 * @return
	 */
	public int getForeachIndex() {
		return foreachIndex;
	}

	/**
	 * @return
	 */
	public String getAmount() {
		return amount;
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?