2016-01-25 54 views
1

你能幫我解決這個問題嗎,我遇到了HTTP狀態400:請求的資源不可用每次我點擊我的按鈕編輯和刪除,我不能現在解決這個問題已經有好幾個星期了,請問有人能給我這個建議嗎下面是我的代碼:HTTP狀態400:請求的資源不可用

用戶控制器

@Controller 
 
@RequestMapping(value = "/ims-user") 
 
public class IMSUserController { 
 

 
\t private static final Logger logger = LoggerFactory.getLogger(IMSUserController.class); 
 
\t private static final String SAVE_ACTION = "/ims-user/save"; 
 
\t private static final String UPDATE_ACTION = "/ims-user/update"; 
 

 
\t @Autowired 
 
\t private IMSUserService imsUserService; 
 

 
\t @RequestMapping(method = RequestMethod.GET) 
 
\t public String loadIMSUserList(Model model) { 
 
\t \t logger.info("Getting all IMS Users"); 
 
\t \t model.addAttribute("imsUserList", imsUserService.getAllIMSUsers()); 
 
\t \t return "imsUserList"; 
 
\t } 
 

 
\t @RequestMapping(value = "/new", method = RequestMethod.GET) 
 
\t public String loadIMSUserForm(Model model) { 
 
\t \t logger.info("Creating new IMS User"); 
 
\t \t IMSUser imsUser = new IMSUser(); 
 
\t \t model.addAttribute("imsUser", imsUser); 
 
\t \t model.addAttribute("action", SAVE_ACTION); 
 
\t \t buildModel(model, imsUser, SAVE_ACTION); 
 
\t \t return "imsNewUserForm"; 
 
\t } 
 

 
\t @RequestMapping(value = "/view/{id}", method = RequestMethod.GET) 
 
\t public String loadIMSUserForm(Model model, @PathVariable Long id) { 
 
\t \t logger.info("Viewing User"); 
 
\t \t IMSUser imsUser = imsUserService.getIMSUserById(id); 
 
\t \t model.addAttribute("imsUser", imsUser); 
 
\t \t return "imsViewUserForm"; 
 
\t } 
 

 
\t @RequestMapping(value = "/save", method = RequestMethod.POST) 
 
\t public String saveIMSUser(@Validated @ModelAttribute("imsUser") IMSUser imsUser, BindingResult result, Model model, 
 
\t \t \t RedirectAttributes redirectAttributes) { 
 
\t \t imsUserService.addIMSUser(imsUser); 
 
\t \t return "redirect:/ims-user"; 
 
\t } 
 

 
\t @RequestMapping(value = "/delete", method = RequestMethod.GET) 
 
\t public String deleteIMSUser(@PathVariable Long id) { \t \t 
 
\t \t logger.info("Deleting User"); \t \t 
 
\t \t IMSUser imsUser = imsUserService.getIMSUserById(id); \t \t 
 
\t \t imsUserService.deleteIMSUser(imsUser); 
 
\t \t return "redirect:/ims-user"; 
 
\t } 
 

 
\t @RequestMapping(value = "/edit/{id}", method = RequestMethod.GET) 
 
\t public String editIMSUser(@PathVariable Long id, Model model, RedirectAttributes redirectAttributes) { 
 
\t \t 
 
\t logger.info("Loading edit for of IMSUser with the following details"); 
 
\t \t IMSUser imsUser = imsUserService.getIMSUserById(id); 
 
\t \t 
 

 
\t \t if (imsUser == null) { 
 
\t \t \t return "redirect:/ims-user"; 
 
\t \t } 
 
\t \t buildModel(model, imsUser, UPDATE_ACTION); 
 

 
\t \t return "imsEditUser";

VIEW-USER.JSP

<%@ page language="java" contentType="text/html; charset=UTF-8" 
 
\t pageEncoding="UTF-8"%> 
 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
 
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> 
 
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> 
 

 
<html> 
 

 
<head> 
 

 
<link rel="stylesheet" type="text/css" 
 
\t href="<c:url value="/resources/css/style.css" /> "> 
 
<link rel="stylesheet" type="text/css" 
 
\t href="<c:url value="/resources/css/utility.css" /> "> 
 
<link rel="stylesheet" type="text/css" 
 
\t href="<c:url value="/resources/css/bootstrap/bootstrap.min.css" /> "> 
 

 
</head> 
 

 
<form:form modelAttribute="imsUser" action="${pageContext.servletContext.contextPath}/delete" method="GET" > 
 
\t <form:hidden path="id"/> 
 
\t <input type="button" id="btn-user-edit" value="Edit" class="btnHeader button" onclick="location.href='${pageContext.request.contextPath}/edit/{imsUser.id}'"/> 
 
</form:form> 
 

 

 
<body> 
 

 
\t \t <div class="form-user"> 
 
\t \t \t <ul> 
 
\t \t \t \t <c:out value="${action}"/> 
 
\t \t \t \t 
 
\t \t \t \t <li><label><strong> User Type  :</strong></label><span> 
 
\t \t \t \t <c:out value="Employee"/></span></li> \t 
 
\t \t \t \t 
 
\t \t \t \t <li><label><strong> Username  :</strong></label><span> 
 
\t \t \t \t <c:out value= "${imsUser.username}" /></span></li> 
 
\t \t \t \t 
 
\t \t \t \t <li><label><strong> Password  :</strong></label><span> 
 
\t \t \t \t <c:out value= "${imsUser.password}" /></span></li> 
 
\t \t \t \t 
 
\t \t \t \t <li><label><strong> Client Name  :</strong></label><span> 
 
\t \t \t \t <c:out value="Biolinks"/></span></li> 
 
\t \t \t \t 
 
\t \t \t \t <li><label><strong> First Name  :</strong></label><span> 
 
\t \t \t \t <c:out value="${imsUser.firstname}" /></span></li> 
 
\t \t \t \t 
 
\t \t \t \t <li><label><strong> Middle Name  :</strong></label><span> 
 
\t \t \t \t <c:out value= "${imsUser.middlename}" /></span></li> 
 
\t \t \t \t 
 
\t \t \t \t <li><label><strong> Last Name  :</strong></label><span> 
 
\t \t \t \t <c:out value= "${imsUser.lastname}" /></span></li> \t 
 
\t \t \t \t 
 
\t \t \t \t 
 
\t \t \t \t <li><label><strong> Contact Number  :</strong></label><span> 
 
\t \t \t \t <c:out value= "${imsUser.contactNumber}" /></span></li> 
 
\t \t \t \t 
 
\t \t \t \t <li><label><strong> E-mail Address  :</strong></label><span> 
 
\t \t \t \t <c:out value= "${imsUser.emailAddress}" /></span></li> 
 
\t \t \t \t 
 
\t \t \t \t <li><label><strong> Address  : </strong></label><span> 
 
\t \t \t \t <c:out value= "${imsUser.address}"/></span></li> \t \t 
 
\t \t \t \t \t \t \t 
 
\t \t \t \t <li><label><strong> City  :</strong></label><span> 
 
\t \t \t \t <c:out value= "${imsUser.city}"/></span></li> 
 
\t \t \t \t 
 
\t \t \t \t <li><label><strong> Postal Code  :</strong></label><span> 
 
\t \t \t \t <c:out value= "${imsUser.postalCode}" /></span></li> 
 
\t \t \t \t 
 
\t \t \t </ul> 
 
\t \t 
 
\t 
 
\t \t </div> 
 

 
</body> 
 
</html> 
 

 
<div id="deleteUserDialog" title="Please Confirm" class="hidden"> 
 
\t \t Are you sure you want to delete this user? 
 
</div> 
 

 
<script type="text/javascript"> \t 
 

 
function deleteUser() 
 
{ 
 

 
\t \t document.getElementById("imsUser").submit(); 
 
\t \t 
 
} \t 
 

 

 

 
</script>

EDIT-USER.JSP

<%@ page language="java" contentType="text/html; charset=UTF-8" 
 
\t pageEncoding="UTF-8"%> 
 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
 
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> 
 
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> 
 

 

 
<form:form id="imsUser" modelAttribute="imsUser" action="${pageContext.servletContext.contextPath}${action}" method="GET" cssClass="form-user"> 
 
\t \t <form:hidden path="id"/> 
 
\t \t <c:out value="${imsUser.id}"/> 
 
\t \t 
 
\t \t <ul> 
 
\t \t \t \t \t 
 
\t \t \t \t <li><label><strong> Username </strong></label>:<form:input 
 
\t \t \t \t \t \t type="text" path="username" /></li> 
 
\t \t \t \t <li><label><strong> Password </strong></label>:<form:input 
 
\t \t \t \t \t \t type="text" path="password" /></li> 
 
\t \t \t \t <li><label><strong> First Name </strong></label>:<form:input 
 
\t \t \t \t \t \t type="text" path="firstname" /></li> 
 
\t \t \t \t <li><label><strong> Middle Name </strong></label>:<form:input 
 
\t \t \t \t \t \t type="text" path="middlename" /></li> 
 
\t \t \t \t <li><label><strong> Last Name </strong></label>:<form:input 
 
\t \t \t \t \t \t type="text" path="lastname" /></li> 
 
\t \t \t \t <li><label><strong> Contact Number </strong></label>:<form:input 
 
\t \t \t \t \t type="text" path="contactNumber"/></li> \t \t \t 
 
\t \t \t \t <li><label><strong> E-mail Address </strong></label>:<form:input 
 
\t \t \t \t \t \t type="text" path="emailAddress" /></li> 
 
\t \t \t \t <li><label><strong> Address </strong></label>:<form:input 
 
\t \t \t \t \t \t type="text" path="address" /></li> 
 
\t \t \t \t <li><label><strong> City </strong></label>:<form:input 
 
\t \t \t \t \t \t type="text" path="city" /></li> 
 
\t \t \t \t <li><label><strong> Postal Code </strong></label>:<form:input 
 
\t \t \t \t \t \t type="text" path="postalCode" /></li> 
 
\t \t 
 
\t \t \t 
 
\t \t </ul> 
 
</form:form>

感謝您的幫助傢伙!

回答

0

我認爲你的表單正在做POST請求而不是DELETE/PUT。你可以看看瀏覽器的開發控制檯來確認它。

您可以從窗體傳遞action = delete/put作爲請求參數。並將HiddenHttpMethodFilter添加到您的Spring應用程序中。

0

有在你的控制器類級別多一個映射是@RequestMapping(value = "/ims-user")

按鈕應提交:

onclick="location.href='${pageContext.request.contextPath}/ims-user/edit/{imsUser.id}'"

,而不是

onclick="location.href='${pageContext.request.contextPath}/edit/{imsUser.id}'"

0

我看看你的代碼,我會嘗試先改變一些小事情。

你的觀點頁有形體出來的部分,我覺得把它放到身體部分可以有一點幫助。

該按鈕刪除,我認爲你可以改變它的鏈接(< a href ...)到你的路線,並與此,你不需要一個窗體等。在這種情況下,你可以格式化你鏈接到它看起來像一個按鈕,例如,使用bootstrap,class =「btn btn-default」,getboostrap.com中的更多示例。

我前段時間寫了一個示例項目。在這個項目中你會看到一些例子,我希望這對你有所幫助。

https://bitbucket.org/macielbombonato/apolo

對不起我的英文不好,如果你需要一些幫助,下跌與我聯繫。

編輯添加一些代碼...

鑑於JSP

</head> 
<body> 

<a href="${pageContext.request.contextPath}/ims-user/edit/{imsUser.id}" class="btn btn-default"> 
Edit 
</a> 

... 

你刪除按鈕可以使用相同的風格,但你需要將控制器更改爲這項工作。通常,我使用這樣的鏈接在我的控制器:

/ims-user/entity/1 

和使用方法刪除

看看這個類在例如: UserAPIController

@RequestMapping(value = "{id}", method = RequestMethod.DELETE) 

有了這個您的網址將是

/ism-user/1 

但在你的情況下,你可以簡單地包括de id在方法調用

@RequestMapping(value = "/ims-user/delete/{id}", method = RequestMethod.GET) 
public String deleteIMSUser(@PathVariable Long id) 

有了這個,你的刪除按鈕將是這樣的:

<a href="${pageContext.request.contextPath}/ims-user/delete/{imsUser.id}" class="btn btn-default"> 
Delete 
</a> 

不要忘記,你的標籤需要留在正確的位置,因此,你需要把形式,按鈕和其他身體內部變薄。

我希望我幫你。

+0

嗨,我試着看看你已經分享給我的鏈接,但後來它不是英文的,所以我不明白這一點。我根據您的建議做了一些更改,但現在我得到了不同的錯誤,指出「客戶端發送的請求在語法上不正確」。對不起,我是一個java編程的新手,沒有適當的培訓:( –

+0

嗨,我編輯了我的答案,試圖更好地解釋。如果你還有問題,請與我聯繫。 –

相關問題