Forms 将属性标记中的值提交到操作窗体

Forms 将属性标记中的值提交到操作窗体,forms,jsp,properties,struts2,submit,Forms,Jsp,Properties,Struts2,Submit,JSP: <s:form action = "addfriend"> <s:property value="Username" /> <s:submit value="Add friend" /> </s:form> 此代码是否将属性标记中的值提交到操作表单?否,属性标记不生成输入字段。仅描述您可以找到的属性标记。它用于将值堆栈中的值打印到JSP输出。要将值提交到操作,表单需要有一个标记,该标记生成HTMLinput标记或textar

JSP:

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


此代码是否将
属性
标记中的值提交到操作表单?

否,
属性
标记不生成输入字段。仅描述您可以找到的
属性
标记。它用于将值堆栈中的值打印到JSP输出。要将值提交到操作,表单需要有一个标记,该标记生成HTML
input
标记或
textarea
标记。这就是标签所提供的

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


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

正如@Roman所指出的,代码如下:

你可以做:

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

如果需要发送通过
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
可能会产生问题,并且不是标准的