html,sql,properties就不传了
记得写完就保存,保存,保存,ctrl+s,ctrl+s,ctrl+s!!!
设置视图类型为 JSp
* 如果不设置,将不能使用jsp文件作为视图文件
如果直接render("xxx.html/xxx.jsp")的话请把默认的视图模式设置为相应的,me.setViewType(ViewType.JSP);
.java代码中重定向(redirect(url))
目标:使用JQ,JF,AjAx,DB+Record实现“注册”,“登陆”。
JFinal中xxxController中的Action方法什么时候调用,DB+Record什么在哪里使用,与配置文件间的结合又该如何操作。
JFinal访问一个确切的Action(Action定义见3.2节)需要使用controllerKey与method来精确定位
在JFinal 中Servlet,Service,Dao有对应什么,每一层该如何去操作?
Servlet(获取Jsp信息):
Service:
Dao:
AJAX的作用,重点?
JFinal中的save函数是干嘛的?
返回值是boolean
源码:
public boolean save() {
//表的相关信息
TableInfo tableInfo = tableInfoMapping.getTableInfo(getClass());
StringBuilder sql = new StringBuilder();
List<Object> paras = new ArrayList<Object>();
DbKit.dialect.forModelSave(tableInfo, attrs, sql, paras);
// if (paras.size() == 0) return false;
// The sql "insert into tableName() values()" works fine, so delete this line
// --------
Connection conn = null;
PreparedStatement pst = null;
int result = 0;
try {
conn = DbKit.getConnection();
if (DbKit.dialect.isOracle())
pst = conn.prepareStatement(sql.toString(), new String[]{tableInfo.getPrimaryKey()});
else
pst = conn.prepareStatement(sql.toString(), Statement.RETURN_GENERATED_KEYS);
DbKit.dialect.fillStatement(pst, paras);
// for (int i=0, size=paras.size(); i<size; i++) {
// pst.setObject(i + 1, paras.get(i));
// }
result = pst.executeUpdate();
// if (isSupportAutoIncrementKey)
getGeneratedKey(pst, tableInfo); // getGeneratedKey(pst, tableInfo.getPrimaryKey());
getModifyFlag().clear();
return result >= 1;
} catch (Exception e) {
throw new ActiveRecordException(e);
} finally {
DbKit.close(pst, conn);
}
}
package com.itzy.common;
import com.alibaba.druid.support.jconsole.DruidPlugin;
import com.itzy.User.User;
import com.itzy.controller.IndexController;
import com.jfinal.config.Constants;
import com.jfinal.config.Handlers;
import com.jfinal.config.Interceptors;
import com.jfinal.config.JFinalConfig;
import com.jfinal.config.Plugins;
import com.jfinal.config.Routes;
import com.jfinal.core.JFinal;
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.activerecord.Config;
import com.jfinal.plugin.activerecord.dialect.SqlServerDialect;
import com.jfinal.plugin.c3p0.C3p0Plugin;
import com.jfinal.render.ViewType;
import com.jfinal.template.Engine;
public class Myconfig extends JFinalConfig{
public static void main(String[] args) {
/**
* 特别注意:Eclipse 之下建议的启动方式
*/
JFinal.start("src/main/webapp", 80, "/", 5);
}
@Override
public void configConstant(Constants me) {
// TODO Auto-generated method stub
PropKit.use("config.properties");
//me.setDevMode(PropKit.getBoolean("DevMode"));
//me.setViewType("index.jsp");
; }
@Override
public void configRoute(Routes me) {
// TODO Auto-generated method stub
me.add("/", IndexController.class);
//me.setViewType(ViewType.JFINAL_TEMPLATE);
}
@Override
public void configEngine(Engine me) {
// TODO Auto-generated method stub
//devMode配置为true,将帮助文件实现热加载;
me.setDevMode(true);
}
@Override
public void configPlugin(Plugins me) {
// TODO Auto-generated method stub
C3p0Plugin cp = new C3p0Plugin(PropKit.get("jdbcUrl"),PropKit.get("user"),PropKit.get("password"));
ActiveRecordPlugin arp = new ActiveRecordPlugin(cp);
arp.setShowSql(true);
//映射表到模型
//_MappingKit.mapping(arp);所有映射在MappingKit中自动化搞定
arp.addMapping("customs", User.class);
me.add(cp);
me.add(arp);
}
@Override
public void configInterceptor(Interceptors me) {
// TODO Auto-generated method stub
}
@Override
public void configHandler(Handlers me) {
// TODO Auto-generated method stub
}
}
package com.itzy.controller;
import java.util.List;
import com.itzy.User.User;
import com.itzy.service.userService;
import com.jfinal.core.Controller;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;
public class IndexController extends Controller{
/*private userService getuserService(){
return new userService();
}*/
public void index(){
render("index.html");
}
public void register(){
//render("register.html");
String sname = getPara("user");
String spassword = getPara("password");
List<Record> suser = Db.find("select * from customs where user = 'sname'");
/*Record rd = new Record().set("password", spassword).set("user",sname);
Db.save("customs", rd);*/
if(suser.size() != 0){
//rd.set("user",sname).set("password",spassword);
System.out.println("用户已存在");
render("register.html");
}else{
System.out.println("注册成功");
render("index.html");
Record rd = new Record().set("password", spassword).set("user",sname);
Db.save("customs", rd);
render("index.html");
}
/*List users = User.dao.find("select * from customs where user = '"+sname+"' and password = '"+spassword+"' ");
System.out.println(sname+","+spassword);
setAttr("users",users);
if(users.size()!=0){
System.out.println("用户已存在");
//alter();
render("register.html");
}
else{
Record rd = new Record().set("user",sname).set("password",spassword);
Db.save(sname, rd);
System.out.println("注册成功");
}*/
}
public void login(){
//render("index.html");
String sname = getPara("user");
String spassword = getPara("password");
List users = User.dao.find("select * from customs where user = '"+sname+"' and password = '"+spassword+"' ");
System.out.println(sname+","+spassword);
setAttr("users",users);
if(users.size()!=0){
System.out.println("登陆成功");
//alter();
//render("success.html");
success();
}
else{
//Record rd = new Record().set("user",sname).set("password",spassword);
//Db.save(sname, rd);
System.out.println("账号或密码错误");
render("index.html");
}
}
public void success(){
render("success.html");
}
/*public void submit(){
String sname = getPara("user");
String spassword = getPara("password");
//List<sname> users = new ListArray<sname>();
List users = User.dao.find("select * from customs where user = '"+sname+"' and password = '"+spassword+"' ");
System.out.println(sname+","+spassword);
setAttr("users",users);
if(users.size()!=0){
System.out.println("用户已存在");
register();
//alter();
}
else{
System.out.println("登陆成功");
success();
}
}*/
/*ublic void add(){
User user = getModel(User.class,"user");
user.save();
System.out.println("注册ok");
login();
}*/
}
package com.itzy.User;
import javax.servlet.http.HttpSession;
import com.jfinal.plugin.activerecord.Model;
public class User extends Model<User>{
public static final User dao = new User();
}