ITPub博客

首页 > 应用开发 > Java > 阿加莎的JSP(2day)

阿加莎的JSP(2day)

原创 Java 作者:terryisme 时间:2009-03-18 11:42:54 0 删除 编辑

今天的学习内容有:
Spring插件的安装和使用
安装中文补丁
启动时清除eclipse内存
阅读SPRINGSIDE文档
代码事例分析
关于代码中中文乱码问题的处理

Spring插件的安装
1.考文件org.springside.ide_1.0.0.jar到D:J2EEeclipseplugins中

2.重新启动ECLIPSE 加参数-CLEAR
3.在新建OTHER中看有没有SPRING项目

Spring插件的使用
1.新建其他项目

2.选择SPRINGSIDE PROJECT

3.填入名字

4.选择组件

以后组件还可以再增加
5.这样一个项目就生成了:)嘿嘿

安装中文补丁
1. 解压NLpack1-eclipse-SDK-3.2-win32.zip到eclipse中eclipseplugins下
2. 记录路径D:J2EEeclipsepluginsNLpack1-eclipse-SDK-3.2-win32
3. 在LINKS目录里面建立文件language.link,用TXT打开将PATH=D:J2EEeclipsepluginsNLpack1-eclipse-SDK-3.2-win32写入即可
4. 重新启动eclipse(可能要重新装载MY eclipse)

阅读SPRINGSIDE文档


代码事例分析
程序功能:实现用户的列出,编辑,删除,增加


一个CRUD界面由下面的五个关键文件组成
" User-- POJO Entity
" UserManager--Business Manager
" UserAction -- Controller
" userList.jsp -- 用户列表页面
" userForm.jsp --新增与修改用户页面

1. 类
User.java
User类使用了Hibernate Annotation来标示ORM的映射关系,因为默认类名与数据库表名,属性名与数据库列名相同,因此注释量比hbm文件大大降低。
代码中只以@Entity注释User类,以@Id 和 @GeneratedValue注释id列,表明主键及其生成策略,其余属性全部与数据库中的列默认映射。

package org.springside.helloworld.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

/**
* 用户.带jpa annotation简版配置.
*
* @author calvin
* @author schweigen
*/
@Entity//这个语句是JDK1.5后新增加的功能,定义一个实体对象
@Table(name = "USERS")//定义表名为USERS,但是USERS这个是可以修改的
public class User {// USER类的定义,与数据表字段一一对应
private Integer id;//ID属性
private String name;
private String email;
private String descn;
@Id//表明是主键
@GeneratedValue(strategy = GenerationType.AUTO)//用GenerationType类型来自动定义
public Integer getId() {//方法的定义
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getDescn() {
return descn;
}

public void setDescn(String descn) {
this.descn = descn;
}
}

UserManage.java
Manager类倾向于RoR式的简洁,所以No Dao,No Interface ,继承于强力基类HibernateEntityDAO, 基类使用SpringHibernateTemplate,并用泛型封装了默认的CRUD函数。
package org.springside.helloworld.service;

import org.springside.core.dao.HibernateEntityDao;
import org.springside.helloworld.model.User;

/**
* 用户管理业务类.
*


* 继承于HibernateEntityDao,不需任何代码即拥有默认的对User对象的CRUD函数. 如果想了解不继承于EntityDao,自行编写CRUD的写法, 参考{@link UserManagerNativeVersion}.
*
* @author calvin
* @see HibernateEntityDao
* @see org.springside.core.dao.HibernateGenericDao
* @see UserManagerNativeVersion
*/
public class UserManager extends HibernateEntityDao {
// ....CRUD以外的其它商业方法C增加R查询U更新D删除,UserManager对于User类的操作,这里只有一个对HibernateEntityDao的继承。
}

UserAction.java
Struts Action 部分避免了旧式Struts 用法的繁琐,详见Pragmatic Struts篇。
新模式下,继承DispatchAction 每个Controller 响应一组相关操作,LazyValidatorForm免去FormBean定义,同样采用了强力的StrutsEntityAction CRUD基类。
UserAction 首先用泛型声明管理类型为User,Manger类型为UserManager,再声明userManager变量和它的setter函数,就拥有了默认的CRUD管理函数。

package org.springside.helloworld.web;
import org.springside.core.web.StrutsEntityAction;
import org.springside.helloworld.model.User;
import org.springside.helloworld.service.UserManager;

/**
* 用户管理Controller.
*


* 继承于StrutsEntityAction,不需编码就拥有默认的对User对象的CRUD响应函数. 如果想了解不继承于EntityAction,自行编写CRUD的写法, 参考{@link UserActionNativeVersion}.
*
* @author calvin
* @see org.springside.core.web.StrutsEntityAction
* @see org.springside.core.web.StrutsAction
* @see UserActionNativeVersion
*/
public class UserAction extends StrutsEntityAction {

@SuppressWarnings("unused")//对本句后面的代码不进行检查
private UserManager userManager;

public void setUserManager(UserManager userManager) {
this.userManager = userManager;//定义各个BEAN之间的关系
}
}

2. JSP
Userlist.jsp

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ include file="/commons/taglibs.jsp" %>//包含文件taglibs.jsp


<%@ include file="/commons/meta.jsp" %>
User Manage




<%@ include file="/commons/messages.jsp" %>

User Infomation Manage












*



Save
Cancel




// staticJavascript="false"自动动态生成JAVASCRIPT代码

<%@ include file="/commons/footer.jsp" %>//${ctx}是个变量为了表示绝对地址

Userform.jsp
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ include file="/commons/taglibs.jsp" %>


<%@ include file="/commons/meta.jsp" %>
//
User Manage




User List


<%@ include file="/commons/messages.jsp" %>
<!-- action="${pageContext.request.contextPath}/user.do">






Edit


Delete


-->





<%@ include file="/commons/footer.jsp" %>

3. 配置文件

Dataaccesscontext-hibernate.xml
连接数据库的时候要修改

http://www.springframework.org/dtd/spring-beans-2.0.dtd">

<!-- 数据源定义,使用Apache DBCP 连接池 -->






<!--Hibernate SessionFatory-->



<!--
org.springside.bookstore.commons.model.Book
org.springside.bookstore.commons.model.Category
-->




<!-- see /components/orm/hibernate/meta/dialect.properties for all Dialect -->
org.hibernate.dialect.HSQLDialect//红字需要改
false
org.hibernate.cache.EhCacheProvider
true


<!--Hibernate TransactionManager-->




Servicecontext.xml

http://www.springframework.org/dtd/spring-beans-2.0.dtd">
// default-lazy-init="true"说明只有要用的时候才加载
<!--

-->

Validation.xml

"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.3.0//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_3_0.dtd">


<!--






-->


启动时清除eclipse内存


关于代码中中文乱码问题的处理
1. 在项目属性中点右键

2. 选择UTF-8


javabean相关知识:javabean 是一种组件技术,服务逻辑层编程实现,对应与microsoft的com技术;jsp是java server page,在c/s和b/s结构中实现server端编程,对应mic的asp;jdbc是java
db connection,是一种java db的驱动技术,对应mic的odbc,如果想从事web开发,这里的几个都要学,尤其是javabean.组合起来就是所谓的mvc的开发模式,mvc也就是通常所说的模,视图,控制的缩写
Java Bean简易教程
  SqlMap 架构需要对 Java Bean 有坚实的理解。幸运的是,和 SqlMap 有关系的 Java Bean API 的并不是很多。因此,如果您以前没有接触过 Java Bean,下面是一个简单的介绍。
  Java Bean 是什么呢?Java Bean 是一种特殊的 Java类,它严格遵循 JavaBean 命名规范,定义存取类状态信息方法的命名规则。
  Java Bean 的属性由它的方法定义(而不是由字段定义)。以“set”为名称开始的方法是可写的属性,而以“get”为名称开始的方法是可读的属性。
  对于“boolean”类型的字段,可读的方法名称也可以用“is”开始。“Set”方法不应拥有返回类型(即必须为 void),并且只能有一个参数,参数的数据类型必须和属性的数据类型一致。“Get”方法应返回合适的类型并且不允许有参数。
  虽然通常并不强制,但“Set”方法参数的数据类型和“Get”方法的返回类型应一致。Java Bean 还应实现Serializable接口。
Java Bean 还支持其他特性(如事件等)。但这些特性 SQL Map 和 Web 应用中并不重要。
下面是 Java Bean 的一个例子:
public class Product implements Serializable ...{
private String id;

private String description;

public String getId() ...{
return id;
}

public void setId(String id) ...{
this.id = id;
}

public String getDescription() ...{
return description;
}

public void setDescription(String description) ...{
this.description = description;
}
注意!对于特定的属性,不要混淆“Get”方法和“Set”方法的数据类型。例如,对于数值类型的“account”属性,确保 getter方法和 setter方法使用同一数值类型,如下面的 例子:
public void setAccount (int acct) {….}
public int getAccount () {….}
注意到两个方法都使用了“int”类型。如果从“get”方法返回“long”类型,会出现问题。
注意!类似的,您必须只有一个“get”方法和“set”方法。Be judicious with polymorphic methods. You’re better off naming them more specifically anyway.
注意!对于“boolean”类型的属性,“get”方法还可以有别的语法,可以是“isXxxx()”格式。确保您只有一个“is”方法或“get”方法,不能同时有两种写法。

问题:
1.USERLIST.jsp中的id="page"div id="header"

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/93029/viewspace-1018945/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: JAVA
请登录后发表评论 登录
全部评论

注册时间:2009-02-23

  • 博文量
    142
  • 访问量
    632476