我使用HTML作为REST客户端。我需要将表单数据发送到服务器。 在服务器端(用java实现),我的POST(我使用POST更新我的表)方法的路径类似于:@Path(" http://www.something.com/ {id}" ) 路径工作正常,我用Postman和浏览器测试过,但对于我的HTML客户端,我需要{id}部分 我的动态链接。 例如,我点击一些产品(假设我有一些带有某种产品的网页),浏览器会打开一个新窗口,所以我可以更新一个信息 关于那个产品。要进行更新,我需要该产品" id"在我的链接中,如下所示:http://www.something.com/ {id}
<form action="http://www.something.com/2" method="post">
<input name="id" type="hidden">
<input name="product_name">
<input name="product_size">
<input name="product_number">
<input type="submit" value="Add">
</form>
在这个例子中,我只是硬编码了#39; {id}等于2,它有效! 但是,如何将http://www.something.com/ {id}&lt; - 此{id}部分设为动态(在我的index.html文件中)?
答案 0 :(得分:1)
你需要做两件事
relatedItems.forEach(function(item,index) { if (item.get('slug') === itemModel.get('id')) { if (index === 0) { page.Prev = null; if(relatedItems.objectAt(index+1) ! = undefined) { page.Next = relatedItems.objectAt(index+1).get('slug'); }else{ page.Next == null; } } else if (index+1 === maxRecords) { if(relatedItems.objectAt(index-1) ! = undefined) { page.Prev = relatedItems.objectAt(index-1).get('slug'); }else{ page.Prev = null; } page.Next = null; } else { if(relatedItems.objectAt(index-1) ! = undefined) { page.Prev = relatedItems.objectAt(index-1).get('slug'); }else{ page.Prev = null; } if(relatedItems.objectAt(index+1) ! = undefined) { page.Next = relatedItems.objectAt(index+1).get('slug'); }else{ page.Next = null; } } }
<form action="" method="post" name="my-form" id="my-form">
但在我看来,我认为你最好直接使用JavaScript来发布帖子,而不是尝试更改表单操作。
答案 1 :(得分:1)
感谢您的回答,特别感谢@Toby提出的解决方案!如果有人在同一个问题上运行,我将分享我的最终解决方案:
...
<body onload="getId('id')">
<div>
<form action="http://www.something.com/{id}" method="post" id="productForm">
<input name="id" type="hidden" id="id">
<input name="product_name">
<input name="product_size">
<input name="product_number">
<input type="submit" value="Add">
</form>
</div>
<script>
var query = window.location.search.substring(1);
var id = null;
function getId (variable){
var idArr = query.split("=");
id = idArr[1];
document.getElementById("productForm").action="http://www.something.com/"+id;
document.getElementById("id").value=id;
}
</script>
</body>
...
我的带有REST路径的java类与此类似:
/**
* to access:
* http://www.something.com/{id}
* @param id
* @param product_name
* @param product_size
* @param product_number
*/
@Path("/{id}")
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public void tableUpdate(@FormParam("id") int id,@FormParam ("product_name") String name, @FormParam ("product_size") String size, @FormParam ("product_number") String number){
...
}