JSP:
<s:form action = "addfriend">
<s:property value="Username" />
<s:submit value="Add friend" />
</s:form>
此代码是否将
<s:property>
标记中的值提交给操作?
<s:property>
标签不会生成输入字段。您可以在here找到
<s:property>
标签的简单描述。它用于将值堆栈中的值打印到 JSP 输出。要将值提交给操作,表单需要有一个标签来生成 HTML <input>
标签或 <textarea>
标签。这就是 <s:textfield>
标签提供的功能。
<s:textfield name="Username" value="%{Username}"/>
注意,还有许多其他标签生成输入字段,您可以在 HTML 浏览器源窗口中看到生成的输出。
如果您需要发送通过
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
可能会产生问题,并且不是标准的。
正如@Roman已经指出的,这是代码:
你可以这样做:
<s:form action="addfriend">
<s:textfield name="Username"/>
<s:submit value="Add friend" />
</s:form>