最新内容请参考www.rose4j.cn
经过几天的整理修正,现在Rose4J的WEB开发引擎终于可以跟大家见面了,前台页面与后台java程序能完全分开,使用两端的工作都变得简单清晰,入门难度几乎为零,附件中是所需要的jar包,请下载试用。
下面我们来看看Rose4J的模板的使用方法:
一、WEB模板代码;
HTML 代码
见附件(这里显示不了html代码,郁闷中)
从上面模板可以看出Rose4J只有两个TAG(tempnode、include)和4个属性(foreach、item,tid,remove),它也是一个标记语言,写法如下 ${变量表达式} 。
其中4个属性可用于html任何标签(如用于tr ,td等),foreach、item配合使用,表示一个循环,foreach="${dataSet}" ,此时dataSet是一个集合对象或数组,item="${data}" ,data表示集合对象或数组对象中每一个成员。
java 代码
- package juan.framework;
- import java.util.ArrayList;
- import java.util.List;
- public class ValueObject {
- private int id=0;
- private String name="tom";
- private List aList=new ArrayList();
- public List getList() {
- return aList;
- }
- public void setList(List list) {
- aList = list;
- }
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- }
- package juan.framework;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Vector;
- import juan.framework.context.IContext;
- import juan.framework.context.impl.InnerContextImpl;
- import juan.framework.runtime.RuntimeSingleton;
- public class Test {
- /**
- * @param args
- */
- public static void main(String[] args) throws Exception{
- String filename = "/xml/hell.html"; //要访问的模板path
- Vector paths = new Vector();
- paths.add("E:\\workspace\\Test\\juan"); //模板存放的path,可以有多个
- RuntimeSingleton.init(paths);
- IContext context=new InnerContextImpl();
- context.put("title", "www.mobi99.cn");
- ValueObject vo1=new ValueObject();
- vo1.setId(9999);
- vo1.setName("vovovovovov");
- context.put("data", vo1);
- List aList=new ArrayList();
- ValueObject[] xxSet=new ValueObject[2];
- ValueObject vo=new ValueObject();
- vo.setId(100);
- vo.setName("tony");
- aList.add(vo);
- xxSet[0]=vo;
- vo=new ValueObject();
- vo.setId(200);
- vo.setName("tom");
- aList.add(vo);
- xxSet[1]=vo;
- context.put("dataSet", aList);
- context.put("xxSet", xxSet);
- RuntimeSingleton.getTemplate(filename, "GBK").merge(context,null); //此处null为writer,如果是servlet则是response.getOutputStream(),demo中省掉了
- }
- }
- 感兴趣的朋友可以自己稍加修改变成一个web应用,当然也可以等我的web demo