标签: spring-form

Spring Framework <form:errors />标记没有显示错误

我知道这里有很多类似的问题,但没有一个能解决我的问题.

我正在使用Spring 4.0.3和Hibernate Validator 5.1.0.当我尝试省略标记的path属性时会出现问题<form:errors/>,因此:

<form:errors path="contato.nome" />工程
<form:errors path="*" />工作
<form:errors />不起作用

我不知道为什么会这样.Spring javadocs(org.springframework.web.servlet.tags.form.ErrorsTag)说它应该像这样工作:

仅字段 - 设置字段名称(或路径)的路径
仅对象错误 - 省略路径
所有错误 - 将路径设置为*

你能帮我吗?

感兴趣的代码位于'edicao.jsp'和ContatoController.java的方法'confirmarEdicao'中.对不起,如果我的英语不好.


ContatoController.java

@Controller
@RequestMapping("/contatos")
public class ContatoController {

    @Autowired
    private ContatoService contatoService;

    @Autowired 
    private MessageSource messageSource;

    @RequestMapping(value = "/confirmarEdicao", method = RequestMethod.POST)
    public String confirmarEdicao(@Valid Contato contato, BindingResult bindingResult) {

        if(bindingResult.hasErrors()) {
            return "contatos/edicao";
        }

        contatoService.save(contato);
        return "redirect:/contatos";
    }

    @RequestMapping(method = RequestMethod.GET)
    public ModelAndView form(HttpServletRequest request) {
        String …
Run Code Online (Sandbox Code Playgroud)

validation spring-mvc hibernate-validator spring-form

4
推荐指数
1
解决办法
2万
查看次数

如何正确使用Spring MVC <form:select>标签将特定对象字段的值显示到集合中?

我是Spring MVC的新手,我很难理解究竟是如何工作的 标签.

所以我有以下情况.

进入控制器我有这个方法:

@RequestMapping(value = "/consultazioneMinisteriale", method = RequestMethod.GET)
public String consultazione(Locale locale, Model model) {

    List<Twb1012Regione> listaRegioni = geograficaService.getListaRegioni();

    System.out.println("Numero regioni: " + listaRegioni.size());

    model.addAttribute("listaRegioni", listaRegioni);

    return "utenteMinisteriale/consultazione";
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,此方法检索Twb1012Regione对象的List 并将其放入模型对象中,以便可以在consultazione.jsp页面中使用.

所以Twb1012Regione类是这样的模型对象:

@Entity
@Table(name="anagrafiche.TWB1012_REGIONE")
@NamedQuery(name="Twb1012Regione.findAll", query="SELECT t FROM Twb1012Regione t")
public class Twb1012Regione implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @Column(name="COD_REG")
    private String codReg;

    @Column(name="DES_REG")
    private String desReg;

    .....................................
    .....................................
    OTHER FIELDS
    .....................................
    .....................................
}
Run Code Online (Sandbox Code Playgroud)

codReg …

java spring jsp spring-mvc spring-form

3
推荐指数
1
解决办法
1万
查看次数

&lt;form:form 有方法 GET 或 POST

这可能是一个非常基本的问题,但我很困惑。我有几个疑问:

  1. 在 spring 形式中,<form:form如果未指定方法,那么它是 GET 还是 POST?
  2. 如果弹簧形式具有<form:formcommandName 那么是 GET 还是 POST?

第二个问题是因为我在代码中看到“form:form commandName=xyz action=abc” 当我检查 HTML 代码(查看源代码)时,它会转换为“form action=abc method=POST”

请帮我解决一下这个。

spring spring-mvc spring-form

2
推荐指数
1
解决办法
3115
查看次数

手动将 FieldError 添加到 bindingResult 时,Spring 表单输入值丢失

我在 Spring MVC 中有一个 web 控制器:

@RequestMapping("/")
public String create(@Valid @ModelAttribute Device device, BindingResult bindingResult) {
    return getDefaultView();
}
Run Code Online (Sandbox Code Playgroud)

jsp视图:

<form:form role="form" commandName="device">
    <form:input path="name" class="form-control"/>
    <form:errors path="name" cssClass="text-danger"/>
    <button type="submit">Submit</button>
</form:form>
Run Code Online (Sandbox Code Playgroud)

假设我的 Device 类只有一个属性name。我想验证它(示例长度 >= 5)

public class DeviceDTO {
    @Size(min = 5)
    String name;
    //getter & setter..
}
Run Code Online (Sandbox Code Playgroud)

运行后,我在名称字段中输入字符串“abc”然后提交,表单将显示为: 在此处输入图片说明

我们可以看到有旧值和错误消息。但在某些情况下,我想用我自己的标准手动验证(该注释无法处理),我删除 @Size 注释并像这样更改我的控制器:

@RequestMapping("/")
public String create(@Valid @ModelAttribute Device device, BindingResult bindingResult) {
    if(device.getName().length() < 6)
        bindingResult.addError(new FieldError("device", "name", "custom error"));
    return getDefaultView();
}
Run Code Online (Sandbox Code Playgroud)

但是现在,当我使用“abc”值提交表单时,会显示我的自定义错误,但我的 …

java spring jsp spring-mvc spring-form

2
推荐指数
1
解决办法
2324
查看次数

基于模型变量+Spring表单+JSP的选中单选按钮

我有一个cuntry.java用变量调用的模型lang。我想检查 JSP 中基于lang. 它可以是“EN”或“FR”。当我编写下面的代码时,在 JSP 页面中抛出错误。

代码:

<form:radiobutton path="lang" id="language" value="FR" name="radios" <c:if ${cuntry.lang == 'FR' ? 'checked="checked"' : '' } /> ></form:radiobutton>
Run Code Online (Sandbox Code Playgroud)

错误 :Unterminated &lt;form:radiobutton tag

spring jsp jstl spring-mvc spring-form

2
推荐指数
1
解决办法
1万
查看次数

Spring 5 不可变形式在没有参数构造函数时也使用全参数构造函数

在一个不可变的类/对象中,我有一个无参数构造函数将值初始化为 default/null,另一个必需的参数构造函数将所有值初始化为来自构造函数的参数。

使用表单绑定时(通过在控制器中的请求参数中指定),spring 始终调用无参数构造函数而不初始化值。如何确保 spring 仅调用所需的参数构造函数?

这是春季版本 5.1.5。我也尝试在“必需参数构造函数”上添加@ConstructorProperties,但无济于事。


我的不可变表单/bean 对象:

public class ImmutableObj {
    private final Integer id;
    private final String name;

    // no arg constructor
    // spring calls this one when resolving request params
    public ImmutableObj() {
        this(null, null);
    }

    // required args constructor
    // I want spring to call this one when resolving request params
    @ConstructorProperies({"id", "name"})
    public ImmutableObj(Integer id, String name) {
        this.id = id;
        this.name = name;
    }

    public Integer getId() {
        return id;
    }

    public …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc spring-form

2
推荐指数
1
解决办法
738
查看次数

如何在jQuery Chosen Multiselect中POST所选元素

我有一个基于弹簧的表单,以便发布我的用户注册.最近,我不得不更新我的表单,以允许用户选择项目.此选择需要多选,因为它可以是多个选项.

我选择的选择是这样的:

<select name="projects" data-placeholder="Click to choose your project(s)" multiple class="chosen-select" style="width:350px;" tabindex="2">
    <option value=""></option>
    <option value="AA">AA</option>
    <option value="BB">BB</option>
    <option value="CC">CC</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我指定了name属性来发送param,但行为不是预期的:

projects    AA
projects    BB
Run Code Online (Sandbox Code Playgroud)

帖子发送了两次参数.我怎样才能发送类似......项目的东西:AA,BB?

谢谢

forms jquery multi-select spring-form

1
推荐指数
1
解决办法
2653
查看次数

如何将 Spring 表单输入占位符属性值引用到消息源属性?

是否可以使用spring- 标签(spring表单标签库,用于数据绑定)中的标签(spring 标签库)从.properties消息文件中检索消息。spring:messageform:input


src/main/resources > texts.properties(文件)

testEntry=Test entry
Run Code Online (Sandbox Code Playgroud)

src/main/webapp/WIN-INF/JSP > test.jsp

如果我尝试这样做:

testEntry=Test entry
Run Code Online (Sandbox Code Playgroud)

我得到的结果<spring:message code="testEntry">是占位符而不是Test entry


如果我尝试这样做:

<%@taglib prefix='spring' uri='http://www.springframework.org/tags'%>
<%@taglib prefix='form' uri='http://www.springframework.org/tags/form'%>

<form:input path="test" placeholder='<spring:message code="testEntry">'/>
Run Code Online (Sandbox Code Playgroud)

我得到同样的结果。我明白这个问题。但是,是否有另一种方法可以在 JSP 中执行此操作,以便具有适当代码的消息显示为 spring-form 标记的属性值?

java spring jsp spring-form spring-messaging

1
推荐指数
1
解决办法
7261
查看次数