- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在我的 Spring 应用程序中我是这样做的..
我的 Jsp 表单点击超链接表单将被发送..
<form:form action="user" modelAttribute="NAME">
<a href="href_form1" onclick="onClick_Save()" class="save">Save</a>
</fomr:form>
<script>
function onClick_Save() {
$("#NAME").attr("action", $('.save').attr("href"));
$("#NAME").submit();
});
</script>
在我的 Controller 类中,我编写了方法。
@RequestMapping(value = "href_form1", method = RequestMethod.POST)
public @ResponseBody String href_form1(UserForm userForm,Model model)throws Exception {
//Database code here.
model.addAttribute("NAME", userForm);
return "User Updated";
}
编辑 1:
WARNING: Request method 'GET' not supported
我收到错误页面。
HTTP Status 405 - Request method 'GET' not supported
编辑:修改如下代码后
<script>
$(function() {
$('.save').on("click",function(e) {
e.preventDefault();
$("#NAME").attr("action", $(this).attr("href")).attr("method","POST");
$("#NAME").submit();
});
});
</script>
但是我的表单不会到达我的 Controller 方法。
我的代码有什么问题吗?我还在表单标签中尝试了 method="POST"
。
最佳答案
这是你得到错误的原因
链接的 href 在单击时调用 Controller ,因为您没有取消链接的默认操作
所以代码做了以下事情
在我看来,您有以下可能性 - 其中一些可能比其他的更好。
非javascript
method = { RequestMethod.GET, RequestMethod.POST}
或method = RequestMethod.GET
- GET 将允许您摆脱表单并仅具有以下链接(当然在更新 spring 代码之后) <a href="href_link?user=user1">Save User1</a>
如果你愿意
JavaScript 辅助
在表单中有一个参数,用于保存您要保存的内容的标识,通过 JavaScript 设置该参数并执行 MANDATORY return false
或 preventDefault
取消链接:
<!-- this is an example of the rendered form -->
<form action="href_form1" id="NAME" method="POST">
<input type="hidden" name="saveItem" id="saveItem" value="" />
</form>
<a href="#" class="saveLink" data-save="save item 1">Save item 1</a>
<a href="#" class="saveLink" data-save="save item 2">Save item 2</a>
<a href="#" class="saveLink" data-save="save item 3">Save item 3</a>
请注意我在 href 中没有链接以避免请求某些东西
用于此过程的 jQuery:
$(function() {
// assuming form ID="NAME"
$(".saveLink").on("click",function(e) {
e.preventDefault(); // do not follow link
$("#saveItem").val($(this).data("save")); // set the hidden field
$("#NAME").submit();
});
});
假设您的 spring Controller 已连接以处理您的请求,这对您来说可能是一种更有趣的方式:
$(function() {
$('.save').on("click",function(e) { // passing event
e.preventDefault(); // jQuery will normalise it for all modern browsers
// post the href of the link to the server and return the result in a
// container with ID result
$.post($(this).attr("href"), function(data) { // or $.get if you want
$('#result').html(data);
});
});
关于java - 警告 : Request method 'GET' not supported,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16097202/
我收到多行错误,指出它有重复的类 Duplicate class android.support.v4.accessibilityservice.AccessibilityServiceInfoCom
我的项目昨天运行良好,今天却出现以下错误。请帮忙。 出了什么问题:无法解析配置“:app:debugCompileClasspath”的所有文件。 Could not find support-v4.
错误:配置项目“:app”时出现问题。 Could not find support-v4.jar (com.android.support:support-v4:24.0.0). Searched
我正在使用 react-native-webrtc 运行示例应用程序模块。我正在尝试在 android 中运行该应用程序,但出现这样的错误... * What went wrong: A probl
错误:配置项目“:app”时出现问题。 Could not find support-v4.jar (com.android.support:support-v4:24.0.0). Searched
我克隆了我的项目并使用 Android studio 打开,但构建失败并出现以下错误并且同一个项目在其他项目上运行良好。 出了什么问题:无法解析配置“:app:flavorUnsignedReleas
我正在运行示例应用程序......我正在使用 this模块.....但是我收到这样的错误... FAILURE: Build failed with an exception. * What went
我有一个 Ionic 项目,在升级到 OSx Mojave 后,出于某种原因不再构建。 该项目基于 Ionic 3 构建。 我有 Cordova CLI 7.0.0 当我运行时 ionic cordo
我有一个 Ionic 项目,在升级到 OSx Mojave 后,出于某种原因不再构建。 该项目基于 Ionic 3 构建。 我有 Cordova CLI 7.0.0 当我运行时 ionic cordo
添加 Android 平台(ionic cordova platform add android)后,我构建了我的 Ionic 项目(ionic cordova build android),但出现错
这个问题在这里已经有了答案: Manifest merger failed : Attribute application@appComponentFactory - Androidx (14 个答
关于我的 Gradle 文件中的以下“complie”: dependencies { compile 'com.android.support:support-v4:25.3.1' }
有些困惑。 我想更频繁地使用@supports 但是...我不关心浏览器如何看待它。希望您能说清楚,如果可以的话谢谢您。 如果浏览器本身不理解@supports,它如何计算@support 'not'
我刚刚升级到 Dart 2 和最新版本的 Flutter,现在我无法构建我的应用程序。我在互联网上环顾四周,但仍然不明白为什么会发生这种情况。 我得到的错误是: FAILURE: Build fail
我正在学习 Firebase,但由于以下错误而陷入困境: Error:Failed to resolve: com.android.support:customtabs:25.4.0 Error:Fa
我在构建本周时出于某种原因尝试使用Cordova进行项目时遇到问题: cordova build android gradle获取com.android.support:support alpha而不
对应的androidx是什么com.android.support:support-compat 的图书馆实现push notifications ? 他们说here它是 androidx 的一部分,
我正在尝试为我的应用设置插桩单元测试。并且我已根据以下开发者站点链接添加了依赖项。 https://developer.android.com/training/testing/unit-testin
当我想使用 Proguard 规则生成签名的 APK(发布)时,我收到了以下错误消息: Cannot find a version of 'com.android.support:support-an
这个问题在这里已经有了答案: Failed to resolve: com.android.support:appcompat-v7:26.0.0 (14 个答案) Failed to resolv
我是一名优秀的程序员,十分优秀!