我将数据库中的多行(每一行代表我们的参数)填充到我的表单中。form类有一个我们的参数列表。我能够填充如下表格:填充的表格
然而,当提交时,我得到一个空指针异常:由于某种原因,modelAttribute没有返回到控制器post方法(即save)
位于un.ac.ucl.isd.our.web.controller.SettingsFormController.save(SettingsFormControler.java:71)处的java.lang.NullPointerException位于sun.rereflect.NativeMethodAccessorImpl.invoke0(本机方法)位于sun.reReflect.NativeMethod AccessorImpl.invoke(未知源)位于sun/rereflect.DelegatingMethodAccessorImpl.invokeorg.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:421),位于org.springfframework.web.bind.ann批注.support.HandlerMethod Invoker.invokeHandlerMethod(HandlerSethodInvoker.java:136),位于:org.springframework.web.servlet.DispatcherServlet.doDispatcher(DispatcherServlets.java:875)位于org.springfframework.web.servlet.DisptcherServlet.doService(Dispatcher servlet.java:807)位于org.springframework.web.servlet.FrameworkServlet.prrocessRequest(FrameworkServlet.java:571),位于org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511),位于java.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206),位于org.apache.cacatalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233),位于org.apache.catalina/core.Standard ContextValve.involke(StandardContextValve.java:191)(ErrorReportValve.java:103)位于org.apache.catalina.core.StandardEnginealve.invoke(StandardEnginealve.java:109),位于org.apache.cotalina.connecter.CoyoteAdapter.service(CoyoteAdapter.java:293),位于org/apache.coyote.http11.Http11Processor.processe(Http11Processor.java:861),位于org apache.coyoote.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)位于java.lang.Thread.run(未知源)知道为什么吗?
我使用的是springframework v2.5.6……我尝试过实现(如何使用javaspringframe将web表单中的多行插入到数据库中),但它对我来说不起作用。
表单类:
package uk.ac.ucl.isd.our.web.controller.command;
import java.util.List;
import uk.ac.ucl.isd.our.access.domain.OurParameter;
public class SettingsForm {
private List<OurParameter> params;
public List<OurParameter> getParams() {
return params;
}
public void setParams(List<OurParameter> params) {
this.params = params;
}
}
OurParameter类:
package uk.ac.ucl.isd.our.access.domain;
import uk.ac.ucl.upi.AppParameter;
public class OurParameter {
private String app;
private String description;
private String enabled;
private String grp;
private String name;
private String value;
private String paramValue;
private String paramType;
private String paramFormat;
public String getApp() {
return app;
}
public void setApp(String app) {
this.app = app;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getEnabled() {
return enabled;
}
public void setEnabled(String enabled) {
this.enabled = enabled;
}
public String getGrp() {
return grp;
}
public void setGrp(String grp) {
this.grp = grp;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getParamValue() {
return paramValue;
}
public void setParamValue(String paramValue) {
try {
this.paramValue = AppParameter.getValue(getValue());
} catch (Exception e) {}
}
public String getParamType() {
return paramType;
}
public void setParamType(String paramType) {
try {
this.paramType = AppParameter.getType(getValue());
} catch (Exception e) {}
}
public String getParamFormat() {
return paramFormat;
}
public void setParamFormat(String paramFormat) {
try {
this.paramFormat = AppParameter.getFormat(getValue());
} catch (Exception e) {}
}
}
控制器:
package uk.ac.ucl.isd.our.web.controller;
import java.util.List;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import uk.ac.ucl.isd.our.access.domain.OurParameter;
import uk.ac.ucl.isd.our.service.UPIService;
import uk.ac.ucl.isd.our.web.controller.command.SettingsForm;
/**
*
*
* @author Mo
*
*
*/
@Controller
public class SettingsFormController {
final static Logger logger = Logger.getLogger(SettingsFormController.class);
private UPIService upiService;
@Autowired
public void setUpiService(UPIService upiService)
{
this.upiService = upiService;
}
public SettingsFormController()
{
}
@RequestMapping(value = "/settings.do", method = RequestMethod.GET)
public ModelAndView get() {
SettingsForm settingsForm = new SettingsForm();
List<OurParameter> ourparams = upiService.getAppParamsInfo("OUR");
settingsForm.setParams(ourparams);
return new ModelAndView("settingsForm","settingsForm", settingsForm);
}
@RequestMapping(value = "/settings.do", method = RequestMethod.POST)
public ModelAndView save(@ModelAttribute("settingsForm") SettingsForm settingsForm) {
for (OurParameter oPP: settingsForm.getParams()){
logger.info("Momo Says the posted thingy is: "+oPP.getValue());
logger.info("Momo Says the posted thingy is: "+oPP.getName());
}
//return null;
return new ModelAndView("settingsForm");
}
}
最后是 JSP:
<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>Spring 3 MVC Multipe Row Submit - viralpatel.net</title>
</head>
<body>
<h2>Spring MVC Multiple Row Form Submit example</h2>
<form:form method="post" modelAttribute="settingsForm">
<table>
<tr>
<th>No.</th>
<th>Name</th>
</tr>
<c:forEach items="${settingsForm.params}" var="setting" varStatus="pStatus">
<tr>
<td align="center">${status.count}</td>
<td>
<input name="settingsForm.params[${status.index}].app" value="${setting.app}"/>
<input name="settingsForm.params[${status.index}].description" value="${setting.description}"/>
<input name="settingsForm.params[${status.index}].enabled" value="${setting.enabled}"/>
<input name="settingsForm.params[${status.index}].grp" value="${setting.grp}"/>
<input name="settingsForm.params[${status.index}].value" value="${setting.value}"/>
<input name="settingsForm.params[${status.index}].paramValue" value="${setting.paramValue}"/>
<input name="settingsForm.params[${status.index}].paramType" value="${setting.paramType}"/>
<input name="settingsForm.params[${status.index}].paramFormat" value="${setting.paramFormat}"/>
</tr>
</c:forEach>
</table>
<br/>
<input type="submit" value="Save" />
</form:form>
</body>
</html>
在你引用的例子中,你不会用:
<代码>
你不先试试这个吗?
我有一个窗口窗体,包含两个列表视图(例如,命名为a和b)和一个按钮。当两个列表视图之间有焦点时,按钮的功能应该是以不同的方式显示消息框。 所以按钮的代码是 然而,当我在“b”列表视图中选择该项时。它总是返回MessageBox。节目(b)。当我重新开始并在“a”列表视图中选择一个项目时,它会给我一个空引用异常。 代码有什么问题吗?
问题内容: 我想向 外部网址 提交结帐 表单,该表单应打开带有结果的新窗口 ,但是我无法使我的应用程序打开它,也无法在单独的窗口中打开它,也无法使用应用程序内浏览器。 到目前为止,我要做的是创建一个内部形式的指令,并通过链接器函数在某个时候调用Submit元素。 当我在浏览器中运行时,这会打开一个新窗口(就像我想要的一样)。 这个问题 时,会出现 在设备上运行 ,因为它只是 REPLACES 的
我正在使用截击库。我有以下API urlhttp://example.com/project/contriller/并且需要将json请求作为body发布到它。 如何使用截击发送?
这是我创建包含内容的新页面的简单表单 最后这是我的页面控制器 我使用了一个命名空间管理员。所以问题是,当我发送表单时,我收到了这个错误,我不明白为什么会有不匹配: DSFDSF 我先谢谢你的帮助
我尝试对一个包含restclient的服务进行一个简单的测试。看来我没有成功地模仿。看起来代码得到的是真实数据,而不是模拟数据。任何人都可以帮我。 服务本身将如下所示:
现在反应堆的建造顺序是 另外module2依赖于module1和module3依赖于module2,现在为了解释依赖关系,我使用${project.version}指定module2 pom中的module1版本,类似地,我使用module3 pom中的${project.version}引用module2。现在快照作业成功执行,但是当我尝试使用聚合器pom(它是所有模块的父pom)释放所有模块时
首先感谢您的关注。我正试图在一个视图中处理多个表单,但a对此并不幸运。 view.php 结果如下: 和控制台输出(无错误) 我想我已经选择了正确的方式来渲染我所有的模型对象的形式?哈?
大多数成熟的项目都平行的维护多个发布线。例如,1.0.0发布后,该发布线会继续微小发布1.0.1,1.0.2等等,直到项目明确的决定终止这条线。请注意,仅仅因为发布了1.1.0不足以终止1.0.x线。例如,一些用户会制定某类政策,永远不升级到较新的次要或主要版本的第一个发布—他们希望其他人能将bug试验出来,例如1.1.0,那么就等待1.1.1。这不一定是自私(请牢记,他们也放弃了bug修正和新特