gpt4 book ai didi

java - Struts2属性歧义

转载 作者:行者123 更新时间:2023-12-01 15:33:17 25 4
gpt4 key购买 nike

我正在 struts2 中创建一个项目
我创建了一个 Registration.jsp 页面,如下所示。

<s:form name="registration" action="Registration" >
<s:textfield name="user.userName" label="UserName"></s:textfield>
<s:textfield name="user.userName" label="Password"></s:textfield>
<s:textfield name="user.userName" label="Re-Enter Password"></s:textfield>
<s:textfield name="user.userName" label="Name"></s:textfield>
<s:textfield name="user.userName" label="DOB"/>
<s:textfield name="user.userName" label="email"></s:textfield>
<s:textfield name="user.userName" label="Portfolio Name"></s:textfield>
<s:submit></s:submit>
</s:form>

如上所示,我尝试为所有字段指定相同的名称,并用于设置值。
当我尝试将结果重定向到 jsp 并尝试显示用户名时调用该操作后,它将显示如下

如果我们在给定字段中分别输入a、b、c、d和e作为参数。我得到了准确的输出(包含在输出中),就像这样 - 你好,a,b,c,d,e ..

我不明白为什么会发生这种情况......有人有想法吗?

最佳答案

这就是客户端到服务器通信的工作方式。从 HTML 角度来看,所有内容都将使用字符串的键值对发送到服务器。

在 Action 类中设置并解释为 Collection/Array 的值是功能 S2 及其转换机制(OGNL 和 XWork 转换)。

因此,当您的值作为带有诸如 user.userName=a,b,c,d,e 之类的值的键发送时,并且您已在操作类中声明了一个集合/数组,因此 S2 类型转换机制开始起作用,将这些值转换为数组/集合,并将它们设置在操作类中受尊重的属性中。

在相反的情况下,HTML 将只知道字符串,并且再次从服务器将它们作为键和值发送,并且由于您没有要求您的 S2 机制参与进来,因此这将按照您的要求打印在您的 HTML 中描述。

关于java - Struts2属性歧义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9291271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com