java中form用法_java – 在Play中不推荐使用Form类中的方法表单(Class)!骨架

我花了很多时间尝试解决这个问题,并搜索方法来替换这个,但没有成功.

但是为了实例化这个FormFactory,我必须为它的构造函数传递3个参数,即MessagesApi,Formatters和Validator.包括,我必须实例化Validator接口,我不确定这是正确的方法.

为了使它更容易,我在另一个类中将它分开:

package controllers;

import java.util.Set;

import javax.validation.ConstraintViolation;

import javax.validation.Validator;

import javax.validation.executable.ExecutableValidator;

import javax.validation.metadata.BeanDescriptor;

import play.data.FormFactory;

import play.data.format.Formatters;

import play.i18n.MessagesApi;

class Validador implements Validator {

@Override

public ExecutableValidator forExecutables() {

// TODO Auto-generated method stub

return null;

}

@Override

public BeanDescriptor getConstraintsForClass(Class> arg0) {

// TODO Auto-generated method stub

return null;

}

@Override

public T unwrap(Class arg0) {

// TODO Auto-generated method stub

return null;

}

@Override

public Set> validate(T arg0, Class>... arg1) {

// TODO Auto-generated method stub

return null;

}

@Override

public Set> validateProperty(T arg0, String arg1, Class>... arg2) {

// TODO Auto-generated method stub

return null;

}

@Override

public Set> validateValue(Class arg0, String arg1, Object arg2, Class>... arg3) {

// TODO Auto-generated method stub

return null;

}

}

public class FormCreator {

MessagesApi msgAPI;

Formatters formatador;

Validador validador;

FormFactory factory;

public FormCreator() {

msgAPI = new MessagesApi(null);

formatador = new Formatters(msgAPI);

validador = new Validador();

factory = new FormFactory(msgAPI, formatador, validador);

}

// getters e setters

public MessagesApi getmsgAPI() {

return msgAPI;

}

public void setmsgAPI(MessagesApi msgAPI) {

this.msgAPI = msgAPI;

}

public Formatters getFormatador() {

return formatador;

}

public void setFormatador(Formatters formatador) {

this.formatador = formatador;

}

public Validador getValidador() {

return validador;

}

public void setValidador(Validador validador) {

this.validador = validador;

}

public FormFactory getFactory() {

return factory;

}

public void setFactory(FormFactory factory) {

this.factory = factory;

}

}

在我的控制器中,我必须放这样的东西:

@Inject

FormCreator formCreator = new FormCreator();

通过我花了几个小时来发现这个,这个问题就解决了.

另一个是,无论我做什么,方法bindFromRequest()总是返回null,并且不是因为eclipse和其他任何东西,因为我是从这个工厂创建的表单中调用它.

例:

// never works

formCreator.getFactory().form(Diretor.class).bindFromRequest();

// works fine, but is deprecated

Form.form(Diretor.class).bindFromRequest();

使用这种弃用方法的最新方法是什么?

提前致谢.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值