我与 Spring Mvc app
一起工作并获取 HTTP 状态 [404] – [未找到]。登陆页面为index.jsp
,
并从 Controller 方法调用,
@Controller
public class BitcoinWalletController {
@RequestMapping("/")
public String showBitcoinWallet() {
return "index";
}
}
在 index.jsp
页面,汇款按钮最初被禁用,
<div class="buttons_box">
<button type="button" class="btn btn-default btn-lg active" <%= canSendMoney ? "" : "disabled='true'"%>
data-toggle="modal" data-target="#myModal">Send money
</button>
</div>
并且仅在同步完成且 boolean canSendMoney
时才处于 Activity 状态返回true
。
如果按钮处于 Activity 状态,代码将处理 POST
提供操作,
<%--modal contents here--%>
<div class="modal-content">
<div class="model-header">
<button type="button" class="close" data-dismiss="modal">×!</button>
<h4 class="modal-title">Send Money</h4>
</div>
<form id="send-form" class="form-horizontal" action="sendMoney.jsp" method="POST">
<div class="modal-body">
<div class="form-group">
<label for="amount" class="col-sm-2 control-label">Send</label>
<div class="col-xs-4">
<input id="amount" name="amount" class="form-control" value="0">
</div>
<div class="btc-col">
<span>BTC</span>
</div>
</div>
<div class="form-group">
<label for="address" class="col-sm-2 control-label">to</label>
<div class="col-sm-10">
<input id="address" name="address" class="form-control">
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<button type="submit" class="btn btn-default">Send</button>
</div>
</form>
</div>
sendMoney.jsp
下面提供了代码,
<body>
<%
String amount = request.getParameter("amount").trim();
String address = request.getParameter("address").trim();
WalletSendMoneyController.getSendMoneyController().send(address, amount);
// New location to be redirected
String site = new String("/");
response.setStatus(response.SC_MOVED_TEMPORARILY);
response.setHeader("Location", site);
%>
</body>
当我输入所有必需且正确的信息并按下按钮时,它应该返回到原始页面 - index.jsp
。相反,我收到错误 HTTP Status [404] – [Not Found]
,
我目前没有地址 http://localhost:8080/sendMoney.jsp
的任何句柄。因为,如果POST
提交正确,我想重定向到“/”。
我有jsps
在 WEB-INF
项目目录中的文件夹,
jsps
dispatcher-servlet.xml
中提供的位置文件,
<bean id="jspViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsps/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
we.xml
知道dispatcher-servlet.xml
在哪里位于,
<servlet>
<description></description>
<display-name>dispatcher</display-name>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
如何解决这个问题?谢谢。
最佳答案
Your code showing: You are actually trying to submit form to
sendMoney.jsp
which is not exist(might be, cause i can't see your whole project). Though you need to submit the form to a controller with aModelAttribute
which you need to create.
要从表单 POST 到 Controller ,您必须执行以下操作。
为表单字段创建一个类
public class Data {
private String address;
private String amount;
public Data() {
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getAmount() {
return amount;
}
public void setAmount(String amount) {
this.amount = amount;
}
}
在 GET Controller 中绑定(bind)一个新的 Data 对象,您可以在其中加载 HTML 表单
@RequestMapping("/")
public String showBitcoinWallet() {
model.addAttribute("data", new Data());
return "index";
}
以下表单将位于您的 index.jsp
页面中,其中 /send
是 Controller 将表单发布到何处的映射
<form:form id="send-form" modelAttribute="data" class="form-horizontal" action="/send" method="POST">
<div class="modal-body">
<spring:bind path="amount">
<div class="form-group">
<label for="amount" class="col-sm-2 control-label">Send</label>
<div class="col-xs-4">
<form:input path="amount" id="amount" name="amount" class="form-control" value="0"></form:input>
</div>
<div class="btc-col">
<span>BTC</span>
</div>
</div>
</spring:bind>
<spring:bind path="address">
<div class="form-group">
<label for="address" class="col-sm-2 control-label">to</label>
<div class="col-sm-10">
<form:input path="address" id="address" name="address" class="form-control"></form:input>
</div>
</div>
</spring:bind>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<button type="submit" class="btn btn-default">Send</button>
</div>
</form:form>
以下 Controller 用于/send
POST
@RequestMapping(value = "/send", method = RequestMethod.POST)
public String sendMoney(Data data) {
//here will be your code for send money and whatever you have to do..
...send(data.getAddress(), data.getAmount());
return "redirect:/"; //here will the location where you want to redirect
}
关于java - Spring Mvc 应用程序获取 - HTTP 状态 [404] – [未找到],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44536047/