javascript - Spring Boot:传递哈希图并打开新页面
问题描述
我对所有 Web 开发都很陌生,我正在努力寻找我正在寻找的东西。我正在使用弹簧靴。
我的期望: 用户将打开一个页面,填写表单详细信息,单击提交按钮并重定向到一个新页面。表单信息将存储在哈希图中并在我的后端使用。
现实: 用户打开页面,填写表单详细信息,单击提交按钮,但不会被重定向到新页面。尽管如此,信息仍存储在哈希图中。
HTML:
<div class="container" ng-app="app">
<h1>Configurador de Plugin</h1>
<div ng-controller = "plugins">
<form>
<div class="form-group">
<label>Database Details:</label>
<input type="text" class="form-control" id="hostname" placeholder="Informe o Endereço do Servidor" ng-model="hostname">
<input type="text" class="form-control" id="port" placeholder="Informe a porta" ng-model="port">
<input type="text" class="form-control" id="username" placeholder="Informe o usuário" ng-model="userdb">
<input type="text" class="form-control" id="userpass" placeholder="Informe a senha" ng-model="userpass">
<input type="text" class="form-control" id="database" placeholder="Informe qual o banco de dados" ng-model="database">
<button ng-click="validar()" type="submit" class="btn btn-default">Search</button>
<div ng-show="visivel">
<p>{{valor}}</p>
</div>
</form>
<div>Make a choice</h3>
</div>
<div class="radio">
<label><input ng-model="plugin.Name" value="test" type="radio" name="Test">Test</label></div>
<div class="radio">
<label><input ng-model="plugin.Name" value="v2" type="radio" name="V2">V2</label></div>
<div class="radio">
<label><input ng-model="plugin.Name" value="v1" type="radio" name="V1" >V1</label></div>
Texto:
<p>{{plugin.Name}}</p>
<br>
<button ng-click="sendForm()" type="submit" class="btn btn-default">Search</button>
</div>
</div>
JS:
app.controller('plugins', function($scope, $http, $location) {
$scope.validar = function(){
$scope.visivel = true;
$scope.valor = $scope.hostname,
console.log($scope.hostname)
}
$scope.enviarForm = function(){
var url = $location.url() + "test";
var config =
{
headers :
{
'Content-Type': 'application/json;charset=utf-8;'
}
}
console.log($scope.hostname);
var data =
{
hostname: $scope.hostname,
port: $scope.port,
username: $scope.username,
userpass: $scope.userpass,
database: $scope.database
};
$http.post(url, data, config).then(function (response)
{
$scope.postResultMessage = "Sucess!";
},
function (response) {
$scope.postResultMessage = "Fail!";
});
}
});
控制器:
@RequestMapping("/test")
public ModelAndView CadastroEnotas(@RequestBody HashMap<String, Object> data) {
ModelAndView modelAndView = new ModelAndView("newPage");
modelAndView.addAllObjects(data);
return modelAndView;
}
所以,我的期望是,上面的控制器会将用户发送到 newPage,但事实并非如此。
我正在谷歌搜索,但我可能误解了 ModelAndView 的概念,或者可能误解了如何在我的 js 上执行该功能......
我认为与我正在寻找的最接近的描述如下:angular event success when submit form it opens popup,但我未能使其工作。有人可以指出我做错了什么吗?
解决方案
适当使用redirect
.
ModelAndView modelAndView = new ModelAndView("redirect:/newPage.htm");
modelAndView.addAllObjects(data);
return modelAndView;
或者在发布请求后尝试重定向:$location.path('/newPage')
。
检查这样的事情:重定向
推荐阅读
- sql - 查询以组合两列如果它们不同,否则只返回一列的结果
- java - 如何在不透明的 JPanel 下获得颜色?
- flutter - Flutter:inAppWebview 不加载 initialUrl
- installation - 根据应用程序在 NSIS 中的语言安装具有相同名称的正确文件
- augmented-reality - 实体模型轮廓/边框颜色与材质不同?
- html - 我创建了内容大小和背景大小之间的关联。为什么?
- elasticsearch - 如何计算嵌套字段中的字段数?- 弹性搜索
- python - “ValueError:数据基数不明确”无法复制基本分类器的张量流教程。使用 Python
- r - 从汇总输出中提取值
- javascript - 为什么数组不接受推送变量?