首页 | 公告 | 参考资料  | 教程 | 框架/设计 | 源码/下载 | 构件产品 | MyRSS | 博客 
简易java开源论坛->EasyJF专区
  版主:williamraym
 版面公告:Java新手提问及技术交流区,EasyJF有专人进行解答.
搜索 文章标题: 发表人:
[回复] [精华帖] [版主管理]
 主题:实战easyjweb开发留言本 [收藏]
  [引用回复]

用easyjweb 生成了一个crud 项目,具体生成过程请参见
http://blog.8358.net/williamraym/entry/%E4%BD%BF%E7%94%A8maven%E5%BF%AB%E9%80%9F%E4%BD%93%E9%AA%8Ceasyjweb_spring2_jpa%E7%9A%84%E6%B7%BB%E5%88%A0%E6%94%B9%E6%9F%A5%E5%BA%94%E7%94%A8
http://blog.8358.net/williamraym/entry/使用Maven快速体验EasyJWeb+Spring2+JPA的添删改查应用

由于上文,建了一个可以持久化的应用,我现在要根据这个基础平台构建一个留言本程序。
上文中帮我生成了一个Account的CRUD示例,太方便了,都导致我不想手工编码了。

便是为了了解其内部构造,我还得来手工写一个Entry的代码,这个Entry为一个留言本的每一条留言


首先建立一个Entry 的Domain对象

com.easyjweb.demo.domain.Entry.java

内容为:
package com.easyjweb.demo.domain;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;

import com.easyjf.container.annonation.Field;
import com.easyjf.container.annonation.FormPO;
import com.easyjf.container.annonation.Validator;

@Entity
@FormPO(name = "留言", disInject = "id,serialVersionUID,inputTime,ip")
public class Entry implements java.io.Serializable {

   private static final long serialVersionUID = 3665340848290050762L;
   @Id
   @javax.persistence.GeneratedValue(strategy = javax.persistence.GenerationType.TABLE)
   private Long id;

   @Column(length = 100)
   @Field(name = "您的姓名", validator = @Validator(name = "string", value = "required;min:1;max:100"))
   private String name;

   @Column(length = 255)
   @Field(name = "留言内容", validator = @Validator(name = "string", value = "required;min:1;max:255"))
   private String content;
   private Date inputTime;
   private String ip;
   public Long getId() {
       return id;
   }
   public void setId(Long id) {
       this.id = id;
   }
   public String getName() {
       return name;
   }
   public void setName(String name) {
       this.name = name;
   }
   public String getContent() {
       return content;
   }
   public void setContent(String content) {
       this.content = content;
   }
   public Date getInputTime() {
       return inputTime;
   }
   public void setInputTime(Date inputTime) {
       this.inputTime = inputTime;
   }
   public String getIp() {
       return ip;
   }
   public void setIp(String ip) {
       this.ip = ip;
   }
}


建立一个Entry对象的DAO层对象
com.easyjweb.demo.dao.IEntryDAO.java

内容为:
package com.easyjweb.demo.dao;

import com.easyjf.core.dao.GenericDAO;
import com.easyjweb.demo.domain.Entry;

public interface IEntryDAO extends GenericDAO<Entry> {

}
只写了一个DAO的接口,继承了easyjweb的GenericDAO,这个基类里为我们封装好了常用的DAO操作,省得自已再去写了。

建立一个Entry对象的Service接口
com.easyjweb.demo.service.IentryService.java

此接口里定义几个常要操作的service接口
addEntry(Entry)
getEntry(Long)
removeEntry(Long)
batchRemoveEntries(List<Serializable>)
getEntryBy(IqueryObject)
updateEntry(Long,Entry)

内容为:
package com.easyjweb.demo.service;

import java.io.Serializable;
import java.util.List;

import com.easyjf.core.support.query.IQueryObject;
import com.easyjf.web.tools.IPageList;
import com.easyjweb.demo.domain.Entry;

public interface IEntryService {

   public Long addEntry(Entry instance);

   public Entry getEntry(Long id);

   public boolean removeEntry(Long id);

   public boolean batchRemoveEntries(List<Serializable> list);

   public IPageList getEntryBy(IQueryObject object);

   public boolean updateEntry(Long id, Entry entry);
}


这里只有一个接口,下面实现以上接口。
com.easyjweb.demo.service.impl.EntryServiceImpl.java
内容为:

package com.easyjweb.demo.service.impl;

import java.io.Serializable;
import java.util.List;

import com.easyjf.core.support.query.IQueryObject;
import com.easyjf.web.tools.IPageList;
import com.easyjweb.demo.dao.IEntryDAO;
import com.easyjweb.demo.domain.Entry;
import com.easyjweb.demo.service.IEntryService;

public class EntryServiceImpl implements IEntryService {

   // 需要一个EntryDAO对象,我们使用它抽象出来的接口,通过调用它的接口就可以不用管它具体实现是谁了
   private IEntryDAO dao;

   /*
    * (non-Javadoc)
    *
    * @see com.easyjweb.demo.service.IEntryService#addEntry(com.easyjweb.demo.domain.Entry)
    */
   public Long addEntry(Entry instance) {
       this.dao.save(instance);
       if (instance != null && instance.getId() != null)
           return instance.getId();
       return null;
   }

   /*
    * (non-Javadoc)
    *
    * @see com.easyjweb.demo.service.IEntryService#batchRemoveEntries(java.util.List)
    */
   public boolean batchRemoveEntries(List<Serializable> list) {
       for (Serializable id : list) {
           this.dao.remove(id);
       }
       // 这里实现在实际项目中要作一些修改,直接返回true了
       return true;
   }

   /*
    * (non-Javadoc)
    *
    * @see com.easyjweb.demo.service.IEntryService#getEntry(java.lang.Long)
    */
   public Entry getEntry(Long id) {
       Entry e = this.dao.get(id);
       if (e != null)
           ;
       return e;
   }

   /*
    * (non-Javadoc)
    *
    * @see com.easyjweb.demo.service.IEntryService#getEntryBy(com.easyjf.core.support.query.IQueryObject)
    */
   public IPageList getEntryBy(IQueryObject object) {
       return null;
   }

   /*
    * (non-Javadoc)
    *
    * @see com.easyjweb.demo.service.IEntryService#removeEntry(java.lang.Long)
    */
   public boolean removeEntry(Long id) {
       // 删除时先得到这个对象,如果对象不为NULL再作删除
       Entry e = this.dao.get(id);
       if (e != null) {
           this.dao.remove(id);
           return true;
       }
       return false;
   }

   public boolean updateEntry(Long id, Entry entry) {
       if (id != null) {
           entry.setId(id);
       } else {
           return false;
       }
       this.dao.update(entry);
       return true;
   }

   public void setDao(IEntryDAO dao) {
       this.dao = dao;
   }

}
 楼主:williamraym 2007-09-27 12:17:46.127
 
  [引用回复]

未完待续...
 发言人:williamraym 楼层:1  2007-08-22 13:51:10.563
 
  [引用回复]

呵呵,困惑在哪儿呢?我看了半天找你的困惑没找到,不过我自己到是困惑了。哈哈
 发言人:大峡 楼层:2  2007-08-22 13:52:19.92
 
  [引用回复]

will,你的困惑是不是就是自己不知道自己的困惑在哪儿了?
哈哈!
 发言人:125.120.181.175 楼层:3  2007-08-22 13:55:46.687
 
  [引用回复]

0    [main] ERROR org.hibernate.tool.hbm2ddl.SchemaUpdate  - could not get database metadata
java.sql.SQLException: java.net.ConnectException:连接到端口 1527 上的服务器 localhost 时出错,消息为 Connection refused: connect。
   at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
   at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
   at org.apache.derby.jdbc.ClientDriver.connect(Unknown Source)
   at java.sql.DriverManager.getConnection(DriverManager.java:525)
   at java.sql.DriverManager.getConnection(DriverManager.java:140)
   at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:291)
   at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:277)
   at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:259)
   at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:241)
   at org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:47)
   at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.prepare(SuppliedConnectionProviderConnectionHelper.java:27)
   at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:127)
   at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:314)
   at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
   at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:713)
   at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:127)
   at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:259)
   at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:237)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:908)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:875)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:396)
   at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:240)
   at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:132)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:237)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:153)
   at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:225)
   at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:114)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:801)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:592)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:392)
   at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:240)
   at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:132)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:237)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:153)
   at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:225)
   at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:114)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:801)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:592)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:392)
   at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:240)
   at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:132)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:237)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:153)
   at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:225)
   at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:114)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:801)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:592)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:392)
   at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:240)
   at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:132)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:237)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:153)
   at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findCandidateAdvisors(AbstractAdvisorAutoProxyCreator.java:100)
   at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:67)
   at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:53)
   at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:244)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:282)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:884)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:396)
   at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:240)
   at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:132)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:237)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:153)
   at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:254)
   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:337)
   at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:156)
   at com.easyjf.container.impl.SpringContainer.init(SpringContainer.java:126)
   at com.easyjf.container.impl.DefaultContainer.create(DefaultContainer.java:195)
   at com.easyjf.container.impl.DefaultContainer.refreshContainer(DefaultContainer.java:273)
   at com.easyjf.container.impl.DefaultContainer.refresh(DefaultContainer.java:239)
   at com.easyjf.web.FrameworkLoader.initContainer(FrameworkLoader.java:145)
   at com.easyjf.web.FrameworkLoader.initEasyJWeb(FrameworkLoader.java:92)
   at com.easyjf.web.ActionServlet.initEasyJWeb(ActionServlet.java:110)
   at com.easyjf.web.ActionServlet.init(ActionServlet.java:119)
   at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105)
   at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932)
   at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3917)
   at org.apache.catalina.core.StandardContext.start(StandardContext.java:4201)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
   at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
   at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
   at org.apache.catalina.core.StandardService.start(StandardService.java:450)
   at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
   at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
   at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
Caused by: org.apache.derby.client.am.DisconnectException: java.net.ConnectException:连接到端口 1527 上的服务器 localhost 时出错,消息为 Connection refused: connect。
   at org.apache.derby.client.net.NetAgent.<init>(Unknown Source)
   at org.apache.derby.client.net.NetConnection.newAgent_(Unknown Source)
   at org.apache.derby.client.am.Connection.<init>(Unknown Source)
   at org.apache.derby.client.net.NetConnection.<init>(Unknown Source)
   at org.apache.derby.client.net.ClientJDBCObjectFactoryImpl.newNetConnection(Unknown Source)
   ... 89 more
Caused by: java.net.ConnectException: Connection refused: connect
   at java.net.PlainSocketImpl.socketConnect(Native Method)
   at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
   at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
   at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
   at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
   at java.net.Socket.connect(Socket.java:519)
   at java.net.Socket.connect(Socket.java:469)
   at java.net.Socket.<init>(Socket.java:366)
   at java.net.Socket.<init>(Socket.java:179)
   at org.apache.derby.client.net.OpenSocketAction.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   ... 94 more
16   [main] ERROR org.hibernate.tool.hbm2ddl.SchemaUpdate  - could not complete schema update
java.sql.SQLException: java.net.ConnectException:连接到端口 1527 上的服务器 localhost 时出错,消息为 Connection refused: connect。
   at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
   at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
   at org.apache.derby.jdbc.ClientDriver.connect(Unknown Source)
   at java.sql.DriverManager.getConnection(DriverManager.java:525)
   at java.sql.DriverManager.getConnection(DriverManager.java:140)
   at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:291)
   at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:277)
   at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:259)
   at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:241)
   at org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:47)
   at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.prepare(SuppliedConnectionProviderConnectionHelper.java:27)
   at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:127)
   at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:314)
   at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
   at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:713)
   at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:127)
   at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:259)
   at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:237)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:908)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:875)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:396)
   at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:240)
   at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:132)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:237)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:153)
   at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:225)
   at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:114)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:801)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:592)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:392)
   at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:240)
   at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:132)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:237)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:153)
   at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:225)
   at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:114)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:801)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:592)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:392)
   at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:240)
   at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:132)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:237)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:153)
   at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:225)
   at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:114)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:801)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:592)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:392)
   at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:240)
   at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:132)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:237)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:153)
   at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findCandidateAdvisors(AbstractAdvisorAutoProxyCreator.java:100)
   at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findEligibleAdvisors(AbstractAdvisorAutoProxyCreator.java:67)
   at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoProxyCreator.java:53)
   at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:244)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:282)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:884)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:396)
   at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:240)
   at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:132)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:237)
   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:153)
   at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:254)
   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:337)
   at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:156)
   at com.easyjf.container.impl.SpringContainer.init(SpringContainer.java:126)
   at com.easyjf.container.impl.DefaultContainer.create(DefaultContainer.java:195)
   at com.easyjf.container.impl.DefaultContainer.refreshContainer(DefaultContainer.java:273)
   at com.easyjf.container.impl.DefaultContainer.refresh(DefaultContainer.java:239)
   at com.easyjf.web.FrameworkLoader.initContainer(FrameworkLoader.java:145)
   at com.easyjf.web.FrameworkLoader.initEasyJWeb(FrameworkLoader.java:92)
   at com.easyjf.web.ActionServlet.initEasyJWeb(ActionServlet.java:110)
   at com.easyjf.web.ActionServlet.init(ActionServlet.java:119)
   at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105)
   at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932)
   at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3917)
   at org.apache.catalina.core.StandardContext.start(StandardContext.java:4201)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
   at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
   at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
   at org.apache.catalina.core.StandardService.start(StandardService.java:450)
   at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
   at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
   at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
Caused by: org.apache.derby.client.am.DisconnectException: java.net.ConnectException:连接到端口 1527 上的服务器 localhost 时出错,消息为 Connection refused: connect。
   at org.apache.derby.client.net.NetAgent.<init>(Unknown Source)
   at org.apache.derby.client.net.NetConnection.newAgent_(Unknown Source)
   at org.apache.derby.client.am.Connection.<init>(Unknown Source)
   at org.apache.derby.client.net.NetConnection.<init>(Unknown Source)
   at org.apache.derby.client.net.ClientJDBCObjectFactoryImpl.newNetConnection(Unknown Source)
   ... 89 more
Caused by: java.net.ConnectException: Connection refused: connect
   at java.net.PlainSocketImpl.socketConnect(Native Method)
   at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
   at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
   at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
   at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
   at java.net.Socket.connect(Socket.java:519)
   at java.net.Socket.connect(Socket.java:469)
   at java.net.Socket.<init>(Socket.java:366)
   at java.net.Socket.<init>(Socket.java:179)
   at org.apache.derby.client.net.OpenSocketAction.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   ... 94 more
执行初始化
 发言人:222.183.152.252 楼层:4  2007-08-22 14:18:14.967
 
  [引用回复]

看来数据库要改为MYSQL
因为默认用的DERBY
我这里没启动,所以出了连接错误
 发言人:222.183.152.252 楼层:5  2007-08-22 14:19:27.343
 
  [引用回复]

数据库连接没设置对啊!确认数据库服务是否启动,用户名密码等设置是否正确。
 发言人:大峡 楼层:6  2007-08-22 14:57:48.267
 
  [引用回复]

我想问下:
http://blog.8358.net/williamraym/entry/%E4%BD%BF%E7%94%A8maven%E5%BF%AB%E9%80%9F%E4%BD%93%E9%AA%8Ceasyjweb_spring2_jpa%E7%9A%84%E6%B7%BB%E5%88%A0%E6%94%B9%E6%9F%A5%E5%BA%94%E7%94%A8
里边,也是就快速生成Account应用,这里边的Account.java以及类似的Domain在实际中应该自己写的吧?!
那快速生成的时候从哪儿来的啊?
 发言人:220.181.47.55 楼层:7  2007-08-22 14:57:56.687
 
  [引用回复]

快速生成的时候是从那个bin\sample.bat里得到的Account及相关属性

可以从这个自动生成开始,作为一个示例,也方便新手了解
 发言人:222.183.152.252 楼层:8  2007-08-22 15:22:32.577
 
  [引用回复]

由于我还没有配置这个Action的信息,easyjweb里定义了这个默认路径来寻找Action

com.easyjweb.action.EntryAction



到/WEB-INF/mvc-app.xml里加一个module并定义这个模块


 发言人:williamraym 楼层:9  2007-08-22 15:31:02.03
 
  [引用回复]

<module name="entry" path="/entry" action="com.easyjweb.demo.mvc.EntryAction" inject="byType" />

这样会找不到Action
还是上面那一样的错误

http://127.0.0.1:8080/ejf/entry


 发言人:williamraym 楼层:10  2007-08-22 15:36:57.127
 
  [引用回复]

你的EntryAction的源码能否贴出来瞧瞧?你的class在哪儿啊?
 发言人:大峡 楼层:11  2007-08-22 15:39:14.767
 
  [引用回复]

上面那个错误是我的错,我没有用PLUGIN,它自已没有把改变后的MVC-APP。XML文件复制到WEB-INF/下页,
所以还是原先那个没有加模块的配置
当然就出错了。


<img src="/bbs/upfile/doc/20070822/11877683672181157793070.png" />
出现了这个错误,我现在到WEB-INF/views/下去建立模板文件


 发言人:williamraym 楼层:12  2007-08-22 15:41:41.343
 
  [引用回复]

对,还没给大家瞧瞧我的
EntryAction.java有多Cool呢


以下是源码



package com.easyjweb.demo.mvc;
public class EntryAction extends com.easyjf.web.core.AbstractPageCmdAction {
   
}
 发言人:williamraym 楼层:13  2007-08-22 15:42:47.093
 
  [引用回复]

哈哈,就这么COOL
 发言人:williamraym 楼层:14  2007-08-22 15:43:01.297
 
  [引用回复]

no ocijdbc9 in java.library.path
 发言人:218.56.32.97 楼层:15  2007-08-22 15:46:55.813
 
  [引用回复]

建立文件/WEB-INF/views/entry/index.html
内容为:


我的留言本首页
<a href="/ejf/entry/new">添加留言</a>
<a href="/ejf/entry/list">查看留言</a>


 发言人:williamraym 楼层:16  2007-08-22 15:49:36.797
 
  [引用回复]

没有用到ORACLE啊
你可以把ORACLE驱动加到你的CLASSPATH下面
让系统启动时可以找到它就行了
 发言人:williamraym 楼层:17  2007-08-22 15:50:18.42
 
  [引用回复]

[QUOTE]对,还没给大家瞧瞧我的
EntryAction.java有多Cool呢


以下是源码
...[/QUOTE]怎么一句做实事的源码都没有?你这个Controller层也太干净了吧。
 发言人:小雨 楼层:18  2007-08-22 15:52:37.483
 
  [引用回复]

这里错了,不能用这个基类
而要用这个AbstractPageCmdAction

现在来改EntryAction.java
 发言人:williamraym 楼层:19  2007-08-22 15:54:28.937
 
  [引用回复]

上面又错了

由于我这个程序用到持久层,所以要extends from AbstractPageCmdAction
 发言人:williamraym 楼层:20  2007-08-22 15:56:55.907
 
  [引用回复]

这里错了,不能用这个基类
而要用这个AbstractPageCmdAction

现在来改En...

先做事,等你全部搞完了我再来学习。
 发言人:小雨 楼层:21  2007-08-22 15:58:44.063
 
  [引用回复]

OK
这个新的EntryAction出来了
贴出来看看


package com.easyjweb.demo.mvc;

import java.io.Serializable;

import com.easyjf.core.support.query.IQueryObject;
import com.easyjf.web.tools.AbstractCrudAction;
import com.easyjf.web.tools.IPageList;
import com.easyjweb.demo.domain.Entry;
import com.easyjweb.demo.service.IEntryService;

public class EntryAction extends AbstractCrudAction {

   private IEntryService entryService;

   /*
    * 本方法用于得到要持久化的类,在本例中要将Entry.class持久,所以要返回它。 (non-Javadoc)
    *
    * @see com.easyjf.web.tools.AbstractCrudAction#entityClass()
    */
   @SuppressWarnings("unchecked")
   protected Class entityClass() {
       return Entry.class;
   }

   /*
    * 用于从上下文中根据ID来查找要持久化的对象 (non-Javadoc)
    *
    * @see com.easyjf.web.tools.AbstractCrudAction#findEntityObject(java.io.Serializable)
    */
   protected Object findEntityObject(Serializable arg0) {
       return this.entryService.getEntry((Long) arg0);
   }

   /*
    * 用于从一个QueryObject中得到一个IPageList,而这个IPageList就是页面上的分页集合 (non-Javadoc)
    *
    * @see com.easyjf.web.tools.AbstractCrudAction#queryEntity(com.easyjf.core.support.query.IQueryObject)
    */
   protected IPageList queryEntity(IQueryObject arg0) {
       return this.entryService.getEntryBy(arg0);
   }

   /*
    * 用于从一个指定ID删除一个持久化对象,本人认为此方法设计欠佳哈,应该有一个返回类型,标记是否删除成功!~ (non-Javadoc)
    *
    * @see com.easyjf.web.tools.AbstractCrudAction#removeEntity(java.io.Serializable)
    */
   protected void removeEntity(Serializable arg0) {
       this.entryService.removeEntry((Long) arg0);
   }

   /*
    * 持久化当前传过来的这个Entry (non-Javadoc)
    *
    * @see com.easyjf.web.tools.AbstractCrudAction#saveEntity(java.lang.Object)
    */
   protected void saveEntity(Object arg0) {
       this.entryService.addEntry((Entry) arg0);
   }

   /*
    * 如果传值过来的arg0 (non-Javadoc)
    *
    * @see com.easyjf.web.tools.AbstractCrudAction#updateEntity(java.lang.Object)
    */
   protected void updateEntity(Object arg0) {
       if (arg0 != null) {
           this.entryService.updateEntry(((Entry) arg0).getId(), (Entry) arg0);
       }
   }

   /*
    * 通过配置文件注入这个service
    */
   public void setEntryService(IEntryService entryService) {
       this.entryService = entryService;
   }

}
 发言人:williamraym 楼层:22  2007-08-22 16:14:05.157
 
  [引用回复]

我重启了
出现了错误
[img]/bbs/upfile/doc/20070822/11877706029061157793070.png[/img]





执行初始化
7172 [http-8080-Processor25] ERROR com.easyjf.web.core.DefaultRequestProcessor  - 出现了错误:com.easyjf.beans.exception.BeansException: 无法加载属性指定类型的Bean:interface com.easyjweb.demo.service.IEntryService
com.easyjf.beans.exception.BeansException: 无法加载属性指定类型的Bean:interface com.easyjweb.demo.service.IEntryService
   at com.easyjf.container.impl.DefaultContainer.create(DefaultContainer.java:173)
   at com.easyjf.container.impl.DefaultContainer.getBean(DefaultContainer.java:62)
   at com.easyjf.web.core.FrameworkEngine.findAction(FrameworkEngine.java:265)
   at com.easyjf.web.core.DefaultRequestProcessor.process(DefaultRequestProcessor.java:159)
   at com.easyjf.web.core.DefaultRequestProcessor.process(DefaultRequestProcessor.java:121)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:266)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:181)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
   at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:100)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:209)
   at $Proxy12.process(Unknown Source)
   at com.easyjf.web.ActionServlet.doRequest(ActionServlet.java:187)
   at com.easyjf.web.ActionServlet.doGet(ActionServlet.java:141)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
   at com.easyjf.web.GZIPFilter.doFilter(GZIPFilter.java:33)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
   at com.easyjf.web.CharsetFilter.doFilter(CharsetFilter.java:64)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
   at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
   at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
   at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
   at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
   at java.lang.Thread.run(Thread.java:595)


 发言人:williamraym 楼层:23  2007-08-22 16:17:11.217
 
  [引用回复]

看来easyjweb还不知道我的service哪里
要给它配置一下service
 发言人:williamraym 楼层:24  2007-08-22 16:18:36.687
 
  [引用回复]

配置service时,发现引用到了dao
所以再配置一下dao

在dao.xml文件里
service在service.xml文件里
 发言人:williamraym 楼层:25  2007-08-22 16:20:07.313
 
  [引用回复]

起来了,又有新的错误
0    [main] ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/]  - StandardWrapper.Throwable
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entryService' defined in ServletContext resource [/WEB-INF/classes/service.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'entryDao' of bean class [com.easyjweb.demo.service.impl.EntryServiceImpl]: Bean property 'entryDao' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
Caused by:
org.springframework.beans.NotWritablePropertyException: Invalid property 'entryDao' of bean class [com.easyjweb.demo.service.impl.EntryServiceImpl]: Bean property 'entryDao' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
   at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:699)
   at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:575)


看来这个dao名称不匹配,由于上面的代码中EntryServiceImpl中写的dao,而配置文件中写的是entryDao,自然找不到那个为dao的属性了。
 发言人:williamraym 楼层:26  2007-08-22 16:24:26.217
 
  [引用回复]

public void setEntryDao(IEntryDAO entryDao) {
       this.entryDao = entryDao;
   }

注意:要把这个方法改正确,不然又要出错了,我改了两次才正确!
 发言人:williamraym 楼层:27  2007-08-22 16:30:30.0
 
  [引用回复]

添加留言的模板文件
/WEB-INF/views/entry/new.html

内容如下:
<form method="post" action="/ejf/entry/save">
您的姓名:<input type="text" name="name" /><br />
留言内容:<textarea name="content"></textarea><br />
<input type="submit" value="确定" />


 发言人:williamraym 楼层:28  2007-08-22 16:32:37.453
 
  [引用回复]

由于现在页面上还看不到是否保存成功,我可以通过mysql工具看到库里是否已存储了数据。


 发言人:williamraym 楼层:29  2007-08-22 16:35:22.593
 
  [引用回复]

又范了一个错误
上面EntryServiceImpl.java中,getEntryBy方法直接返回了null
所以系统并没有执行查询面直接返回了。

现在改正

   /*
    * (non-Javadoc)
    *
    * @see com.easyjweb.demo.service.IEntryService#getEntryBy(com.easyjf.core.support.query.IQueryObject)
    */
   public IPageList getEntryBy(IQueryObject object) {
       return QueryUtil.query(object,Entry.class,this.entryDao);
   }

从easyjweb我们们提供的QueryUtil的query方法得到一个IPageList
 发言人:williamraym 楼层:30  2007-08-22 17:16:28.14
 
  [引用回复]

新建list模板
内容如下


<table>
#set ($l=0)
#foreach ($info in $list)
#set ($l=1-$l)
               <tr >
                   <td title="$!info.name">$!info.name &nbsp;</td>
                   <td title="$!info.content">$!info.content &nbsp;</td>
               </tr>
#end
</table>


就显示出了所有存在的记录
 发言人:williamraym 楼层:31  2007-08-22 17:17:26.5
 
  [引用回复]

再在list上加上导航

我的留言本首页
<a href="/ejf/entry/new">添加留言</a>
<a href="/ejf/entry/list">查看留言</a>


 发言人:williamraym 楼层:32  2007-08-22 17:20:21.733
 
  [引用回复]

添加一个分页的功能



   <!-- pagination start-->
   <div id="pagination">
       <ul>
           <li class="info"><span>共$!rows条 第$!page/$!pages页 每页$!pageSize条 </span></li>
       $!pagination
       </ul>
   </div>
   <!-- pagination over -->
 发言人:williamraym 楼层:33  2007-08-22 17:33:28.843
 
  [引用回复]

显示效果如下
现在还不可以正常使用

要加上它相关的js和css文件才可以正常使用

在这里用了$html.easyjweb()
它会帮我们在页面上生成

<script type="text/javascript" src="/javascript/easyjweb/default.js"></script>
<link rel="stylesheet" type="text/css" href="/stylesheet/easyjweb/default.css" />
<style type="text/css">
   @import url("/stylesheet/easyjweb/default.css");
</style>

添加js和css的代码


还要在页面上加一个form元素,完整代码如下:

$html.easyjweb()

我的留言本首页
<a href="/ejf/entry/new">添加留言</a>
<a href="/ejf/entry/list">查看留言</a>

<form id="ListForm" name="ListForm" method="POST">
       <div style="display:none;">
           <input type="hidden" name="id" value="$!id" />
           <input type="hidden" name="mulitId" value="$!mulitId" />
           <input type="hidden" name="pageSize" value="$!pageSize" />
           <input type="hidden" name="currentPage" value="$!currentPage"/>
           <input type="hidden" name="orderBy" value="$!orderBy"/>
           <input type="hidden" name="orderType" value="$!orderType"/>
       </div>
       
<table>
#set ($l=0)
#foreach ($info in $list)
#set ($l=1-$l)
               <tr >
                   <td title="$!info.name">$!info.name &nbsp;</td>
                   <td title="$!info.content">$!info.content &nbsp;</td>
               </tr>
#end
</table>
</form>

   <!-- pagination start-->
   <div id="pagination">
       <ul>
           <li class="info"><span>共$!rows条 第$!page/$!pages页 每页$!pageSize条 </span></li>
       $!pagination
       </ul>
   </div>
   <!-- pagination over -->
 发言人:williamraym 楼层:34  2007-08-22 17:36:10.28
 
  [引用回复]

OK  一个带分页的完整展示页出来了

效果如下:


 发言人:williamraym 楼层:35  2007-08-22 17:36:57.187
 
  [引用回复]

还可以自已调整分页大小


 发言人:williamraym 楼层:36  2007-08-22 17:39:34.657
 
  [引用回复]

其它功能交给你们来作......OK?
 发言人:williamraym 楼层:37  2007-08-22 17:40:10.877
 
  [引用回复]

强烈要求源码提供
 发言人:瞌睡虫.cn 楼层:38  2007-08-22 18:06:14.877
 
  [引用回复]

下边的代码什么作用啊?

     <div style="display:none;">
          <input type="hidden" name="id" value="$!id" />
          <input type="hidden" name="mulitId" value="$!mulitId" />
          <input type="hidden" name="pageSize" value="$!pageSize" />
          <input type="hidden" name="currentPage" value="$!currentPage"/>
          <input type="hidden" name="orderBy" value="$!orderBy"/>
          <input type="hidden" name="orderType" value="$!orderType"/>
      </div>
 发言人:220.181.47.55 楼层:39  2007-08-22 19:23:13.0
 
  [引用回复]

这个是用来分页的,分页需要传递这几个变量!
 发言人:59.46.37.118 楼层:40  2007-08-22 20:14:10.063
 
  [引用回复]

#set ($l=0)
#foreach ($info in $list)
#set ($l=1-$l)


那#set ($l=0)这个变量是做 sort的吗?
 发言人:banian 楼层:41  2007-08-22 22:06:18.187
 
  [引用回复]

是得到一个0和1的值
用来给CSS设置不同的样式

不过本例中没有用到
 发言人:222.183.189.29 楼层:42  2007-08-22 22:30:50.127
 
  [引用回复]

是得到一个0和1的值
用来给CSS设置不同的样式

不过本例中没有用到

"用来给CSS设置不同的样式"
呵呵,非常抽象啊!!!
 发言人:banian 楼层:43  2007-08-22 22:40:01.733
 
  [引用回复]

比如库中共有两条记录,而我想在页面上隔行换一个color显示
就要定义两个不同的CSS样式

这里如果说有一个td1和td0的样式表定义,则页面上可以调用<td class="td$!{l}">
就会用不同样式来显示了!
 发言人:222.183.189.29 楼层:44  2007-08-22 22:59:09.39
 
  [引用回复]

比如库中共有两条记录,而我想在页面上隔行换一个color显示
就要定义两个不同的CSS样式

...

明白了!
谢谢!
 发言人:218.241.228.91 楼层:45  2007-08-22 23:18:29.75
 
  [引用回复]

还不错,能否把全部代码贴上来,我们下载运行试试。
 发言人:小雨 楼层:46  2007-08-23 09:06:23.86
 
  [引用回复]

下载地址
相关附件下载: http://dl.easyjf.com/easyjf/easyjweb/1.0/demo/my-easyjweb-crud-test.zip

 发言人:222.183.155.153 楼层:47  2007-08-23 11:03:53.453
 
  [引用回复]

棒!
竹子顶一下~~
 发言人:60.29.4.172 楼层:48  2007-09-01 23:07:25.453
 
  [引用回复]

支持
 发言人:williamraym 楼层:49  2007-09-02 13:17:10.017
 
  [引用回复]

easyjweb-1.0-m1里面怎么没有JAR,怎么才能编译成JAR文件
 发言人:222.212.66.147 楼层:50  2007-09-27 12:17:46.127
50条回复 共1页,目前为第1 分页: 
[精华帖] [刷新]
 请在下面输入回复信息

表情图片
(加入心情图标)



内容:
相关图片: 各图片之间用逗号隔开
相关附件: 各附件之间用逗号隔开
用户名: 您还没有[ 注册]或[登录
 


Aboutus | 联系我们 | 程序开发 | 网站地图 | 留言板