使用 <s:property> 标签将值提交给 Struts 2 中的操作

问题描述 投票:0回答:3

JSP:

<s:form action = "addfriend">
  <s:property value="Username" />
  <s:submit value="Add friend" />
</s:form>

此代码是否将

<s:property>
标记中的值提交给操作?

forms jsp properties struts2 submit
3个回答
3
投票

不,

<s:property>
标签不会生成输入字段。您可以在
here
找到<s:property>标签的简单描述。它用于将值堆栈中的值打印到 JSP 输出。要将值提交给操作,表单需要有一个标签来生成 HTML
<input>
标签或
<textarea>
标签。这就是
<s:textfield>
标签提供的功能。

<s:textfield name="Username" value="%{Username}"/>

注意,还有许多其他标签生成输入字段,您可以在 HTML 浏览器源窗口中看到生成的输出。


2
投票

如果您需要发送通过

s:property
显示的值,只需向其添加
s:hidden
字段即可:

<s:form action = "addfriend">
    <s:hidden    name = "Username"   />
    <s:property value = "Username"   />
    <s:submit   value = "Add friend" />
</s:form>

请记住,如果标签没有

name
属性,则不会将其发布到操作。

还要避免以大写字母开头的变量:

username
将映射到
setUsername
getUsername
,但
Username
可能会产生问题,并且不是标准的。


1
投票

正如@Roman已经指出的,这是代码:

你可以这样做:

<s:form action="addfriend">
      <s:textfield name="Username"/>
      <s:submit value="Add friend" />
</s:form>
© www.soinside.com 2019 - 2024. All rights reserved.