Tag: validation

业务逻辑validation模式和建议

我的应用程序中有两层validation。 首先是由beanvalidationAPI执行的实体validation(例如必填字段)。 第二级是业务逻辑validation。 例如,用户有一个post。 用户可以删除post,只有他是这篇文章的创建者并且评分<50。所以我必须做这样的事情: if (post.getCreator().equals(session.getUser())) { if (post.getRating() < 50) { postRepository.delete(post); } else errors.add(400, "Cant delete post with rating 50 or higher") } else errors add (400, "You should be owner of the post") 我不喜欢这种方式,因为这个条件被重用,我必须重复代码。 此外,如果条件数大于5,则读取和理解代码变得不真实。 此外,标准的Spring Validator将不会非常有用,因为我必须为不同的操作(例如删除和更新)为一个实体制作不同的validation 所以我正在寻找一种更聪明的方式(模式可能),如果有人能给我一个提示,我将非常感激。 预先感谢!

如何确定文件是否为PDF文件?

我在Java中使用PdfBox从PDF文件中提取文本。 提供的某些输入文件无效,PDFTextStripper会暂停这些文件。 是否有一种干净的方法来检查提供的文件是否确实是有效的PDF?

约束注释中的变量字段

我需要创建一个自定义约束注释,它可以访问我的bean的另一个字段的值。 我将使用此注释来validation该字段,因为它取决于另一个的值,但是我定义它的方式编译器说“我的字段的注释属性的值”必须是一个常量表达式。 我用这种方式定义了它: @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) @Constraint(validatedBy=EqualsFieldValidator.class) @Documented public @interface EqualsField { public String field(); String message() default “{com.myCom.annotations.EqualsField.message}”; Class[] groups() default {}; Class[] payload() default {}; } public class EqualsFieldValidator implements ConstraintValidator{ private EqualsField equalsField; @Override public void initialize(EqualsField equalsField) { this.equalsField = equalsField; } @Override public boolean isValid(String thisField, ConstraintValidatorContext arg1) { //my validation […]

可以使用JAXB 2.0validation编组的XML吗?

显然在JAXB的第2版中 – validation者类已被弃用 – 这是否意味着编组器会自动validation您的XML? 如果是这样,它似乎没有抱怨我正在形成的一些不正确的XML! 任何人都可以给我一些关于如何validation编组XML以确保它符合XSD架构的建议。 非常感谢。

使用Selenium WebDriver和java检查该元素不存在的最佳方法

我尝试下面的代码,但似乎它不起作用…有人能告诉我最好的方法吗? public void verifyThatCommentDeleted(final String text) throws Exception { new WebDriverWait(driver, 5).until(new ExpectedCondition() { @Override public Boolean apply(WebDriver input) { try { input.findElement(By.xpath(String.format( Locators.CHECK_TEXT_IN_FIRST_STATUS_BOX, text))); return false; } catch (NoSuchElementException e) { return true; } } }); }

如何最好地清理Java webapp中的输入

我们使用jsp,servlets,bean和mysql数据库。 我们不希望限制用户在表单字段上输入的字符。 那么如何清理输入以及如何确保输出不会因恶意活动而更改。 有没有办法在发送输出时我可以检查是否已经发送了额外的代码。 就像假设有搜索输入字段 – 用户提供的内容类似于alert(“I am here”) 。 有没有我可以知道这是一个HTML标签。 如果用户在链接字段中附加了一个额外的参数,那么就像之前和之后的检查一样,我可以为文档做一些额外的链接字段。

如何针对xsdvalidationxml并获取* ALL *错误?

我有一个像下面的标准代码来validationxml对xsd,但它在第一次错误时抛出exception并停止。 如何validationxml,但继续第一个和下一个错误并最终得到它们? 它甚至可能吗? public static void validate(File xml, InputStream xsd) { try { SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema schema = factory.newSchema(new StreamSource(xsd)); Validator validator = schema.newValidator(); StreamSource xmlFile = new StreamSource(xml); validator.validate(xmlFile); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }

如何使jtextfield只接受netbeans中的字符

我已经完成了netbeans注册的示例项目。 在jtextfield1中是用户ID,而Jtextfiled7是国家,两者都必须在字符中不是数字或不允许空格和特殊字符。有可能吗?

Struts2validation数组

问题:如何validation数组的元素? 我想写一个简单的应用程序,要求用户使用struts2输入10个数字。 enter.jsp Enter 10 numbers! Please enter 10 numbers 我使用迭代器生成10个textarea,供用户输入数字。 我希望所有领域都是必需的。 NextAction.java import com.opensymphony.xwork2.ActionSupport; import java.util.ArrayList; public class NextAction extends ActionSupport{ private Integer[] number; public Integer[] getNumber() { return number; } public void setNumber(Integer[] number) { this.number = number; } public String execute(){ return “success”; } } 这个class级唯一的属性是数字。 请注意,因为我生成了10个具有相同名称“number”的textarea,所以我在这个类中得到的“数字”将是一个长度为10的整数数组。当我不使用下面的validation时,我可以很容易地得到用户输入的数字(即number [i]),并在另一个jsp中显示它们。 web.xml中 Number enter.jsp struts2 […]

validation文本字段并联系无文本字段

我有一个由一些文本字段(10)和一个TextArea组成的JFrame 。 我想validation所有文本字段并查看它们是否为空,并检查是否在其中一个文本字段中输入了10位数的联系人号码。 检查文本字段后,我想启用一个提交按钮,用于将所有这些数据提交到我的数据库。 我使用以下代码添加文本区域条件但它不起作用,给出错误: – 线程“AWT-EventQueue-0”中的exceptionjava.lang.NullPointerException 这是我使用的代码,但它不起作用: – public class DataEntered1 implements DocumentListener { private JButton button; List txtfields=new ArrayList(); JTextArea ta; public DataEntered1(JButton dbadd) { this.button=dbadd; } public void addTextField(JTextField txtfield) { txtfields.add(txtfield); txtfield.getDocument().addDocumentListener(this); } public void addTextArea(JTextArea ta) { this.ta=ta; ta.getDocument().addDocumentListener(this); } public boolean isDataEntered() { for(JTextField txtfield:txtfields) { if(txtfield.getText().length()==0) return false; […]