需求背景:
前些日子,有个客户咨询校验问题,在参数模板中使用校验,点查询时触发校验,正常过滤,但是现在的用户习惯于使用enter键提交,则不会触发校验。
场景模拟:
做一个订单表wangge2.raq,另做一个参数模板wangge2_arg.raq,以订单ID为参数,校验描述为订单ID<10257
下图为输入订单ID点击查询按钮正常触发校验
下图为输入订单ID直接按enter键未触发校验
由上图可见,校验失败,用户查出了错误数据。
解决方案:
利用参数监听类实现,不管客户点击查询按钮还是直接按enter键查询,最终都会进入到参数监听类中进行业务处理,在参数监听类中判断得到订单ID的值,如果值大于等于10257,则会alert窗口提示错误,并重定向到页面重新输入。如果订单ID的值符合查询条件,则正常查询
实现步骤:
一:编写参数监听类ParamProcessor
package com.runqian;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Hashtable;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.runqian.report4.usermodel.Context;
import com.runqian.report4.usermodel.input.AbstractParamProcessor;
public class ParamProcessor extends AbstractParamProcessor {