这可能是一个非常基本的问题,但我很困惑。我有几个疑问:
- 在 spring 形式
<form:form
中,如果未指定方法,那么它是 GET 还是 POST? - 如果弹簧表单带有
<form:form
命令名称,那么是 GET 还是 POST?
第二个问题是因为我在代码中看到“form:form commandName=xyz action=abc”当我检查 HTML 代码(查看源代码)时,它转换为“form action=abc method=POST”
请帮我解决一下这个。
这可能是一个非常基本的问题,但我很困惑。我有几个疑问:
<form:form
中,如果未指定方法,那么它是 GET 还是 POST?<form:form
命令名称,那么是 GET 还是 POST?这可能是一个非常基本的问题,但我很困惑。我有几个疑问:
<form:form
中,如果未指定方法,那么它是 GET 还是 POST?<form:form
命令名称,那么是 GET 还是 POST?第二个问题是因为我在代码中看到“form:form commandName=xyz action=abc”当我检查 HTML 代码(查看源代码)时,它转换为“form action=abc method=POST”
请帮我解决一下这个。
我的 XAML 文件具有以下内容:
<toolkit:ListPicker x:Name="lstSetups" Margin="0" VerticalAlignment="Top"
ItemsSource="{Binding BusRouteSetups}"
SelectedItem="{Binding SelectedSetup, Mode=TwoWay}"
Background="{StaticResource BackgroundBrush}" BorderBrush="{StaticResource AccentForegroundBrush}"
Foreground="{StaticResource AccentForegroundBrush}"
Header="{Binding LabelsResources.AreaSetup, Mode=OneWay, Source={StaticResource LocalizedLabels}}"
Template="{StaticResource ListPickerControlTemplate}"
ExpansionMode="FullScreenOnly"
FullModeItemTemplate="{StaticResource ChooseAreaDataTemplate}"
ItemTemplate="{StaticResource AreaSetupNormalDataTemplate}"/>
<phone:LongListSelector x:Name="lBusRoutes"
ItemsSource="{Binding SelectedSetupBusRoutes}"
SelectionChanged="lBusRoutes_SelectionChanged"
Grid.Row="1" Margin="0,12,0,0" ItemTemplate="{StaticResource BusRoutesDataTemplate}"/>
请注意,ListPicker 有两种方式绑定到 ViewModel 中的 SelectedSetup。LongListSelector 绑定到 View Model 中的 SelectedSetupBusRoutes
ViewModel 具有以下代码:
public Setup SelectedSetup
{
get
{
return _SelectedSetup;
}
set
{
if (_SelectedSetup != value)
{
_SelectedSetup = value;
NotifyPropertyChanged("SelectedSetup");
}
}
}
public ObservableCollection<Route> SelectedSetupBusRoutes
{
get
{
if (SelectedSetup != null)
{
return new ObservableCollection<Route>(SelectedSetup.Routes);
}
return null;
}
}
当我从更新 ViewModel 但不会导致 LongListSelector 更新的 ListPicker 更改所选设置时。如果您移出页面然后重新进入,它确实会更新。
我应该处理 ListPicker 更改事件并重新绑定 LongListSelector 还是 ViewModel 可能会发生这种情况但缺少某些东西?
没有指定操作的HTMLform
始终是 GET。它是 HTML 标准。
http://www.w3.org/TR/html401/interact/forms.html#h-17.3
但是当您查看FormTag
Spring 源代码时,您会注意到以下代码:
public class FormTag extends AbstractHtmlElementTag {
/** The default HTTP method using which form values are sent to the server: "post" */
private static final String DEFAULT_METHOD = "post";
所以对于弹簧标签<form:form
动作是默认发布的。
commandName
只是与您的表单绑定的模型属性的名称。它与方法类型无关。此外,它相当于modelAttribute
所以你可以使用任何一个。
Spring 表单的默认方法为 POST。如果你想做get,你必须在form:form标签中写上method="get"。