81,092
社区成员
发帖
与我相关
我的任务
分享
@H("/say")
public class HI {
@M("/yousay")// 通过 /say/yousay访问。
public static void selectOne(JWeb jw) {
jw.printOne("hello!!!!!");
}
}
package wx.web;
import java.text.SimpleDateFormat;
import system.web.JWeb;
import system.web.hm.annotation.H;
import system.web.hm.annotation.M;
import system.web.validate.annotation.Validate;
/**
*
* @author wangchunzi
*/
@H("/login")
public class UserLogin {
@M("/user")//
@Validate(UserLoginValidate.class)
public static void selectOne(JWeb jw) {
//直接取参数
// String account = jw.getString("account");
// String passord = jw.getString("passord");
//注意,取日期、时间的格式,如果没有配置,默认采用框架的全局配置格式。
//置于是用日期格式来转换还是用时间格式来转换,框架会对比值与格式的长度决定 。
// jw.getDate("mydate");//取mydate字段的时间
// jw.getDate("mydate", "yyyy-MM-dd"); 指定格式进行取日期
//------------------------当然,如果参数多,我们通过对象式取参(根据传入的类型,自动装箱)---------------------------------------------------------
//对象式取参
UserVO vo = jw.getObject(UserVO.class);
//此对象取时间时,因为我们没有传时间格式给取参对象的方法,所以,它默认取全局配置的时间配置。
jw.request.setAttribute("ok_return", "你发送的数据:"
+ vo.account
+ "//" + vo.passord
+ "//" + new SimpleDateFormat("yyyy/MM/dd").format(vo.mydate)
);
jw.forward("/index.jsp");
}
}
package wx.web;
import java.util.Date;
public class UserVO {
public String account;// 或者私有化访问域也能取取值的如 private String account;
public String passord;
public Date mydate;
}
package wx.web;
import system.web.validate.model.ValidateModel;
import system.web.JWeb;
import system.web.validate.model.ValidateFieldModel;
import system.web.validate.model.ValidateResultModel;
import java.util.Map;
public class UserLoginValidate extends ValidateModel {
{
super.setReturnMsgKey(ValidateModel.VALIDATE_MSG_KEY);//这个key的作用是,存在request对象属性的key.
super.setReturnURL("/index.jsp");//校验不通过时,跳转的路径。
}
@Override
public void iniValidate() {
super
.put("mydate", "[0-9]{4}-{1}[(01|02|03|04|05|06|07|08|09|10|11|12)]{2}-{1}[0-9]{2}", "类似格式1988-08-21", true)
.put("account", "[a-zA-Z0-9]{1,12}", "账号只能用数字与字母组成。并且不能超出12位", true)
.put("passord", "[a-zA-Z0-9]{1,16}", "密码只能用数字与字母组成。并且不能超出16位", true);
}
// //错误时调用,当然,已经默认的逻辑处理。如果要自定义,请重写此方法
// @Override
// public void error(JWeb jw, ValidateResultModel vr) {
// if (url.isEmpty()) {
// jw.printOne(vr.getMsgByJson());
// System.out.println(vr.getMsgByJson());
// return;
// }
// System.out.println(this.msg_key.isEmpty() ? ValidateModel.VALIDATE_MSG_KEY : this.msg_key);
// for(Map.Entry e:vr.getMsgByMap().entrySet()){
// System.out.println(e.getKey()+"//"+e.getValue());
// }
// jw.request.setAttribute(this.msg_key.isEmpty() ? ValidateModel.VALIDATE_MSG_KEY : this.msg_key, vr.getMsgByMap());
// jw.forward(url);
// }
@Override
public ValidateResultModel recheck(JWeb jw, Map<String, ValidateFieldModel> map, ValidateResultModel vr) {
//上面的校验通过后,都才进行复检
//当vr里有值时,默认不通过复检。(传参来的vr对象是干净的。)
return vr;
}
// //复验失败时调用,当然,已经有默认的逻辑处理。如果要自定义,请重写此方法error
// @Override
// public void errorRecheck(JWeb jw, ValidateResultModel vr){
//
// }
}
@H("/login")
public class UserLogin {
@M("/user")//
@Validate(UserLoginValidate.class)//请注意我。我是校验。我这样用
public static void selectOne(JWeb jw) {
//直接取参数
package wx.web.filemanager;
import configuration.file.ImgFileModel;
import system.web.JWeb;
import system.web.file.FI;
import system.web.file.engine.FileEngine;
import system.web.hm.annotation.H;
import system.web.hm.annotation.M;
@H("/fileup")
public class ImgUp {
@M("/one/img")//fileup/one/img
public static void up(JWeb jw) {
//初始化一个上传引擎(需要传入HttpServletRequest对象
FileEngine file = new FileEngine(jw.request); //请注意我 注意我 注意我
//执行上传操作。默认上传第一个文件(假如有多个文件的吗)
FI upOne = file.upOne(ImgFileModel.class);
// java.util.List<FI> upVast = file.upVast(ImgFileModel.class);//批量上传操作
// file.upOne(ImgFileModel.class, "file");//指定参数名上传
// file.upVast(ImgFileModel.class, "file");//指定参数名,批传
//返回json数据。注意,FI对象重写了toString,此方法现在返回的是json数据
jw.printOne(upOne.toString());
}
}
package configuration.file;
public class ImgFileModel extends system.web.file.FileModel {
@Override
public void configuration(system.web.file.temp.FileConfig fc) {
//web根目录的绝对路径.直接采用全局配置实例中,取得即可。
fc.path_web_real = system.web.WebContext.getWebContext().WEB_PATH;
fc.path_save = "upload/img/"; //上传的目录
fc.fileNameSuffix_alloy = "gif,jpg,jpeg,bmp,png";//图片类型后缀
fc.fileSize_max = 2 * 1024 * 1024; //文件大小
//文件缓冲,及写入硬盘临时文件的临界值
//如果采用Servlet原生支持,两处fileSizeThreshold的值都必须一样!
fc.fileSizeThreshold = 2 * 1024 * 1024;
//等其他参数。
}
}
package wx.web.filemanager;
import configuration.file.ImgFileModel;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import system.web.JWeb;
import system.web.file.engine.PartEngine;
import system.web.servlet.Servlet;
@WebServlet(name = "UpImgFile", urlPatterns = {"/UpImgFile"})
@MultipartConfig(location = "", fileSizeThreshold = 2 * 1024 * 1024)
public class UpImgFile extends Servlet {
@Override
protected void doService(JWeb jw) throws ServletException, IOException {
PartEngine pe = new PartEngine(jw.request);
pe.upOne(ImgFileModel.class);
}
}