- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在一个项目中,第一次使用 struts,当我单击 JSP 页面的提交按钮时,我收到以下错误,任何人都可以找到我吗
异常(exception):
javax.servlet.ServletException: BeanUtils.populate
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:495)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:805)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
根本原因
javax.servlet.ServletException: BeanUtils.populate
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:495)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:805)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
根本原因
java.lang.NumberFormatException
java.math.BigDecimal.<init>(BigDecimal.java:534)
java.math.BigDecimal.<init>(BigDecimal.java:728)
org.apache.commons.beanutils.converters.BigDecimalConverter.convert(BigDecimalConverter.java:112)
org.apache.commons.beanutils.ConvertUtilsBean.convert(ConvertUtilsBean.java:428)
org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1004)
org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:493)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:805)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
这是我的操作页面:
package it.gepo.cflow.tracking.viewcontroler;
import it.gepo.cflow.tracking.dao.CtrkCheckListBean;
import it.gepo.cflow.tracking.dao.CtrkCheckListDAO;
import it.gepo.cflow.tracking.dao.CtrkCliClassiDAO;
import it.gepo.cflow.tracking.dao.CtrkModuliIndiciBean;
import it.gepo.cflow.tracking.dao.CtrkModuliIndiciDAO;
import it.gepo.cflow.utility.UtilityCtrk;
import it.gepo.utility.GepoUtility;
import it.gepo.web.ConnectionFactory;
import it.gepo.web.GepoUtente;
import it.gepo.web.MyAction;
import java.io.IOException;
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.log4j.Logger;
public class TrackingChecklistAction extends MyAction {
public static Logger logger = Logger
.getLogger(TrackingChecklistAction.class);
public static int righeTabella = 10;
public static int righeTabellaNew = 1;
public static boolean unRecordXPagina = false;
public static String nomeForm = "TrackingChecklistForm";
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
logger.debug("execute");
Connection conn = null;
HttpSession session = request.getSession(true);
GepoUtente gepoUtente = (GepoUtente) session.getAttribute("GepoUtente");
String dataSourceName = gepoUtente.getDataSource();
try {
conn = ConnectionFactory.getConnection(dataSourceName);
TrackingChecklistForm myForm = (TrackingChecklistForm) form;
if (mapping.getParameter().equals("visualizza")) {
return visualizza(mapping, myForm, request, response, session,
conn);
} else if (mapping.getParameter().equals("gestione")) {
return gestione(mapping, myForm, request, response, session,
conn);
} else {
throw new IllegalStateException();
}
} catch (Exception e) {
logger.info("errore " + e.getMessage());
ActionMessages errors = new ActionMessages();
ActionMessage error = new ActionMessage("errore.generico",
e.getMessage(), e);
errors.add(ActionMessages.GLOBAL_MESSAGE, error);
saveErrors(request, errors);
return mapping.getInputForward();
} finally {
try {
conn.close();
} catch (Exception e) {
throw new ServletException(e.getMessage());
}
}
}
private ActionForward visualizza(ActionMapping mapping,
TrackingChecklistForm myForm, HttpServletRequest request,
HttpServletResponse response, HttpSession session, Connection conn)
throws IOException, ServletException, Exception {
logger.debug("visualizza");
List lista = null;
CtrkCheckListDAO dao = null;
//
// Primo Ingresso
//
if (myForm.getUtilEseguiRicerca() == null) {
myForm.setUtilRigaInizio(0);
myForm.setUtilRigheTabella(righeTabella);
myForm.setUtilRigheTabellaNew(righeTabellaNew);
myForm.setUtilImpostaRicerca(Boolean.FALSE);
myForm.setUtilEseguiRicerca(Boolean.TRUE);
myForm.setUtilFormModificata(Boolean.FALSE);
}
if (myForm.getUtilEseguiRicerca().booleanValue()) {
lista = loadByWhere(conn, myForm, session);
myForm.setListaDati(lista);
myForm.setUtilEseguiRicerca(Boolean.TRUE);
myForm.setUtilRigaInizio(0);
} else {
dao = new CtrkCheckListDAO();
lista = dao.loadAll(conn);
myForm.setListaDati(lista);
myForm.setUtilEseguiRicerca(Boolean.TRUE);
myForm.setUtilRigaInizio(0);
}
myForm.setListaDati(lista);
//
// Controllo Rientro da eventuale Elimina
//
if (myForm.getUtilRigheTabella() != 0) {
if (myForm.getUtilRigaInizio() > myForm.getNumRecord() - 1) {
myForm.setUtilRigaInizio(((myForm.getNumRecord() - righeTabella) > 0) ? myForm
.getNumRecord() - righeTabella
: 0);
}
}
//
// Controlli da eseguire se visualizzo un record per pagina
//
if (unRecordXPagina) {
if (myForm.getNumRecord() == 0) {
myForm.setUtilRigaInizio(0);
myForm.setUtilRigheTabella(0);
myForm.setUtilRigheTabellaNew(righeTabellaNew);
} else {
myForm.setUtilRigheTabella(righeTabella);
myForm.setUtilRigheTabellaNew(0);
}
}
myForm.setListaDatiNew(myForm.getUtilRigheTabellaNew());
myForm.setUtilFormModificata(Boolean.FALSE);
return mapping.findForward("success");
}
private List loadByWhere(Connection conn, TrackingChecklistForm myForm,
HttpSession session) throws Exception {
String id_modulo =(String) ((myForm.getN_id_modulo() == null) ? "": myForm.getN_id_modulo());
String domanda = (myForm.getC_domanda() == null) ? "" : myForm.getC_domanda();
String flag_attivo = (myForm.getC_flag_attivo() == null) ? "" : myForm.getC_flag_attivo();
String data_inserimento = (myForm.getD_data_inserimento() == null) ? "": myForm.getD_data_inserimento();
String data_disattivazione = (myForm.getD_data_disattivazione() == null) ? "": myForm.getD_data_disattivazione();
String where = "";
String ctlWhere = "";
Object[] elementi = new Object[0];
if (!id_modulo.equals("")) {
where = where + ctlWhere + "ID_MODULO = '" + id_modulo + "'";
ctlWhere = " AND ";
}
if (!domanda.equals("")) {
where = where + ctlWhere + "DOMANDA = '" + domanda + "'";
ctlWhere = " AND ";
}
if (!flag_attivo.equals("")) {
where = where + ctlWhere + "FLAG_ATTIVO = '" + flag_attivo + "'";
ctlWhere = " AND ";
}
if (!data_inserimento.equals("")) {
where = where + ctlWhere + "DATA_INSERIMENTO = '"
+ data_inserimento + "'";
ctlWhere = " AND ";
}
if (!data_disattivazione.equals("")) {
where = where + ctlWhere + "DATA_DISATTIVAZIONE = '"
+ data_disattivazione + "'";
ctlWhere = " AND ";
}
logger.debug("where : " + where);
if (!ctlWhere.equals("")) {
CtrkCheckListDAO dao = new CtrkCheckListDAO();
String orderBy = "";
return dao.loadByWhere(conn, where, elementi, orderBy);
} else {
return null;
}
}
private ActionForward gestione(ActionMapping mapping,
TrackingChecklistForm myForm, HttpServletRequest request,
HttpServletResponse response, HttpSession session, Connection conn)
throws IOException, ServletException, Exception {
logger.debug("gestione");
String action = request.getParameter("c_request");
//
// Controllo Richiesta Immissione / Aggiungi Righe Immissione
//
if (unRecordXPagina) {
if (action.equalsIgnoreCase("Immissione")) {
myForm.setUtilEseguiRicerca(Boolean.FALSE);
return mapping.findForward("success");
}
} else {
if (action.equalsIgnoreCase("Aggiungi Righe Immissione")) {
myForm.addListaDatiNew(5);
myForm.setUtilRigheTabellaNew(myForm.getUtilRigheTabellaNew() + 5);
}
}
//
// Controllo Richiesta Aggiungi Righe Immissione
//
if (!unRecordXPagina) {
if (action.equalsIgnoreCase("Aggiungi Righe Immissione")) {
return mapping.getInputForward();
}
}
//
// Controllo Richiesta Uscita
//
if (action.equalsIgnoreCase("Uscita")) {
session.removeAttribute(nomeForm);
GepoUtente utente = (GepoUtente) session.getAttribute("GepoUtente");
response.sendRedirect(utente.getReturnURL());
return null;
}
//
// Controllo Richiesta Esegui Ricerca
//
if (action.equalsIgnoreCase("Esegui Ricerca")) {
try {
validateRicerca(conn, myForm);
return mapping.findForward("success");
} catch (Exception e) {
logger.debug(e.getMessage());
ActionMessages errors = new ActionMessages();
ActionMessage error = new ActionMessage("errore.generico",
e.getMessage(), e);
errors.add(ActionMessages.GLOBAL_MESSAGE, error);
saveErrors(request, errors);
return mapping.getInputForward();
}
}
//
// Validate Records
//
if (!validate(conn, session, myForm)) {
return mapping.getInputForward();
}
//
// Aggiornamento Tabelle
//
if (!aggiorna(conn, myForm)) {
try {
conn.rollback();
} catch (SQLException e) {
throw new Exception("Errore ROLLBACK : " + e.getMessage());
}
return mapping.getInputForward();
} else {
try {
conn.commit();
} catch (SQLException e) {
throw new Exception("Errore COMMIT : " + e.getMessage());
}
}
//
// Aggiornamento Riuscito
// Imposto default per righe immissione
//
if (!unRecordXPagina) {
myForm.setUtilRigheTabellaNew(righeTabellaNew);
}
//
// Controllo Richiesta Successivo / Precedente
//
if (action.equalsIgnoreCase("Successivo")) {
myForm.setUtilRigaInizio(myForm.getUtilRigaInizio()
+ myForm.getUtilRigheTabella());
return mapping.getInputForward();
}
if (action.equalsIgnoreCase("Precedente")) {
myForm.setUtilRigaInizio(((myForm.getUtilRigaInizio() - myForm
.getUtilRigheTabella()) > 0) ? myForm.getUtilRigaInizio()
- myForm.getUtilRigheTabella() : 0);
return mapping.getInputForward();
}
return mapping.findForward("success");
}
private void validateRicerca(Connection conn, TrackingChecklistForm myForm)
throws Exception {
String n_id_modulo = (String) ((myForm.getN_id_modulo() == null) ? ""
: myForm.getN_id_modulo());
String c_domanda = (myForm.getC_domanda() == null) ? "" : myForm
.getC_domanda();
String c_flag_attivo = (myForm.getC_flag_attivo() == null) ? ""
: myForm.getC_flag_attivo();
String d_data_inserimento = (myForm.getD_data_inserimento() == null) ? ""
: myForm.getD_data_inserimento();
String d_data_disattivazione = (myForm.getD_data_disattivazione() == null) ? ""
: myForm.getD_data_disattivazione();
if (n_id_modulo.equals("") && c_domanda.equals("")
&& c_flag_attivo.equals("") && d_data_inserimento.equals("")
&& d_data_disattivazione.equals("")) {
myForm.setUtilEseguiRicerca(Boolean.FALSE);
} else {
myForm.setUtilEseguiRicerca(Boolean.TRUE);
}
myForm.setUtilImpostaRicerca(Boolean.FALSE);
myForm.setUtilRigaInizio(0);
}
private boolean validate(Connection conn, HttpSession session,
TrackingChecklistForm myForm) throws Exception {
boolean validato = true;
TrackingChecklistRecord[] rec = myForm.getListaDati();
TrackingChecklistRecord[] recNew = myForm.getListaDatiNew();
for (int x = 0; x < myForm.getUtilRigheTabellaNew(); x++) {
if (recNew[x].isModificato()) {
if (!validateRecord(conn, recNew[x])) {
validato = false;
}
myForm.setDatiNew(recNew[x], x);
myForm.setUtilFormModificata(Boolean.TRUE);
}
}
int begin = myForm.getUtilRigaInizio();
int end = (begin + myForm.getUtilRigheTabella()) > rec.length ? rec.length
: (begin + myForm.getUtilRigheTabella());
for (int x = begin; x < end; x++) {
if (rec[x].isModificato()) {
if (!validateRecord(conn, rec[x])) {
validato = false;
}
myForm.setDati(rec[x], x);
myForm.setUtilFormModificata(Boolean.TRUE);
}
}
return validato;
}
private boolean validateRecord(Connection conn, TrackingChecklistRecord rec) throws Exception {
UtilityCtrk rowExist = new UtilityCtrk();
CtrkCheckListBean vo = new CtrkCheckListBean();
CtrkCheckListDAO dao = new CtrkCheckListDAO();
//
// Control Id modulo
//
if (rec.getN_id_modulo().equals("")) {
rec.setC_errore("Inserire ID MODULO");
return false;
}
//
// Control Domanda
//
if (rec.getC_domanda().equals("")) {
rec.setC_errore("Inserire DOMANDA");
return false;
}
//
// Control Flag attivo
//
if (rec.getC_flag_attivo().equals("")) {
rec.setC_errore("Inserire FLAG ATTIVO");
return false;
}
vo.setIdModulo(new BigDecimal(rec.getN_id_modulo()));
vo.setDomanda(rec.getC_domanda());
vo.setFlagAttivo(rec.getC_flag_attivo());
vo.setId(new BigDecimal(GepoUtility.getSequenceNext(conn,
"SEQ_ID_TRACCIATURA")));
if (dao.exist(conn, vo)) {
rec.setC_errore("Record già presente!");
return false;
} else {
return true;
}
}
private boolean aggiorna(Connection conn, TrackingChecklistForm myForm)
throws Exception {
boolean aggiornato = true;
TrackingChecklistRecord[] rec = myForm.getListaDati();
TrackingChecklistRecord[] recNew = myForm.getListaDatiNew();
int begin = myForm.getUtilRigaInizio();
int end = (begin + myForm.getUtilRigheTabella()) > rec.length ? rec.length
: (begin + myForm.getUtilRigheTabella());
//
// Loop per DELETE
//
for (int x = begin; x < end; x++) {
try {
CtrkCheckListBean vo = new CtrkCheckListBean();
CtrkCheckListDAO dao = new CtrkCheckListDAO();
if (rec[x].isC_delete()) {
vo.setRowid(rec[x].getR_rowid());
dao.delete(conn, vo);
}
} catch (Exception e) {
aggiornato = false;
if (unRecordXPagina) {
rec[x].setC_delete(false);
}
rec[x].setC_errore(e.getMessage());
myForm.setDati(rec[x], x);
}
}
//
// Loop per INSERT
//
for (int x = 0; x < myForm.getUtilRigheTabellaNew(); x++) {
try {
CtrkCheckListBean vo = new CtrkCheckListBean();
CtrkCheckListBean voOld = new CtrkCheckListBean();
CtrkCheckListDAO dao = new CtrkCheckListDAO();
vo.setIdModulo(string2BigDecimal(recNew[x].getN_id_modulo()));
voOld.setIdModulo(string2BigDecimal(recNew[x]
.getN_id_moduloOld()));
vo.setDomanda(recNew[x].getC_domanda());
voOld.setDomanda(recNew[x].getC_domandaOld());
vo.setFlagAttivo(recNew[x].getC_flag_attivo());
voOld.setFlagAttivo(recNew[x].getC_flag_attivoOld());
vo.setDataInserimento(string2Date(recNew[x]
.getD_data_inserimento()));
voOld.setDataInserimento(string2Date(recNew[x]
.getD_data_inserimentoOld()));
vo.setDataDisattivazione(string2Date(recNew[x]
.getD_data_disattivazione()));
voOld.setDataDisattivazione(string2Date(recNew[x]
.getD_data_disattivazioneOld()));
if (!vo.hasEqualMapping(voOld)) {
dao.create(conn, vo);
logger.debug("Create " + vo);
}
} catch (Exception e) {
aggiornato = false;
recNew[x].setC_errore(e.getMessage());
myForm.setDatiNew(rec[x], x);
}
}
//
// Loop per UPDATE
//
for (int x = begin; x < end; x++) {
try {
if (!rec[x].isC_delete()) {
CtrkCheckListBean vo = new CtrkCheckListBean();
CtrkCheckListBean voOld = new CtrkCheckListBean();
CtrkCheckListDAO dao = new CtrkCheckListDAO();
vo.setRowid(rec[x].getR_rowid());
voOld.setRowid(rec[x].getR_rowid());
vo.setId(string2BigDecimal(rec[x].getN_id()));
voOld.setId(string2BigDecimal(rec[x].getN_idOld()));
vo.setIdModulo(string2BigDecimal(rec[x].getN_id_modulo()));
voOld.setIdModulo(string2BigDecimal(rec[x]
.getN_id_moduloOld()));
vo.setDomanda(rec[x].getC_domanda());
voOld.setDomanda(rec[x].getC_domandaOld());
vo.setFlagAttivo(rec[x].getC_flag_attivo());
voOld.setFlagAttivo(rec[x].getC_flag_attivoOld());
vo.setDataInserimento(string2Date(rec[x]
.getD_data_inserimento()));
voOld.setDataInserimento(string2Date(rec[x]
.getD_data_inserimentoOld()));
vo.setDataDisattivazione(string2Date(rec[x]
.getD_data_disattivazione()));
voOld.setDataDisattivazione(string2Date(rec[x]
.getD_data_disattivazioneOld()));
if (!vo.hasEqualMapping(voOld)) {
dao.save(conn, vo);
}
}
} catch (Exception e) {
aggiornato = false;
rec[x].setC_errore(e.getMessage());
myForm.setDati(rec[x], x);
}
}
return aggiornato;
}
}
最佳答案
可能有一个方法可以通过异常。还有一些其他原因导致此处的下载。我希望这有帮助
您可以检查此网站:
http://www.coderanch.com/t/53114/Struts/ServletException-BeanUtils-populate
http://javaexceptions1.blogspot.com/2009/08/javaxservletservletexception.html
关于java - 转换 String BigDecimal 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35697443/
我正在使用 node.js 和 mocha 单元测试,并且希望能够通过 npm 运行测试命令。当我在测试文件夹中运行 Mocha 测试时,测试运行成功。但是,当我运行 npm test 时,测试给出了
我的文本区域中有这些标签 ..... 我正在尝试使用 replaceAll() String 方法替换它们 text.replaceAll("", ""); text.replaceAll("", "
早上好,我是 ZXing 的新手,当我运行我的应用程序时出现以下错误: 异常Ljava/lang/NoClassDefFoundError;初始化 ICOM/google/zxing/client/a
我正在制作一些哈希函数。 它的源代码是... #include #include #include int m_hash(char *input, size_t in_length, char
我正在尝试使用 Spritekit 在 Swift 中编写游戏。目的是带着他的角色迎面而来的矩形逃跑。现在我在 SKPhysicsContactDelegate (didBegin ()) 方法中犯了
我正在尝试创建一个用于导入 CSV 文件的按钮,但出现此错误: actionPerformed(java.awt.event.ActionEvent) in cannot implement
请看下面的代码 public List getNames() { List names = new ArrayList(); try { createConnection(); Sta
我正在尝试添加一个事件以在“dealsArchive”表中创建一个条目,然后从“deals”表中删除该条目。它需要在特定时间执行。 这是我正在尝试使用的: DELIMITER $$ CREATE EV
我试图将两个存储过程的表结果存储到 phpmyadmin 例程窗口中的单个表中,这给了我 mariadb 语法错误。单独调用存储过程给出了结果。 存储过程代码 BEGIN CREATE TABLE t
我想在 videoview 中加载视频之前有一个进度条。但是我收到以下错误。我还添加了所有必要的导入。 我在 ANDROID 中使用 AIDE 这是我的代码 public class MainActi
我已经使用了 AsyncTask,但我不明白为什么在我的设备 (OS 4.0) 上测试时仍然出现错误。我的 apk 构建于 2.3.3 中。我想我把代码弄错了,但我不知道我的错误在哪里。任何人都请帮助
我在测试 friend 网站的安全性时,通过在 URL 末尾添加 ' 发现了 SQL 注入(inject)漏洞该网站是用zend框架构建的我遇到的问题是 MySQL -- 中的注释语法不起作用,因此页
我正在尝试使用堆栈溢出答案之一的交互式信息窗口。 链接如下: interactive infowindow 但是我在代码中使用 getMap() 时遇到错误。虽然我尝试使用 getMapAsync 但
当我编译以下代码时出现错误: The method addMouseListener(Player) is undefined for the type Player 代码: import java.
我是 Android 开发的初学者。我正在开发一个接收 MySql 数据然后将其保存在 SQLite 中的应用程序。 我将 Json 用于同步状态,以便我可以将未同步数据的数量显示为要同步的待处理数据
(这里是Hello world级别的自动化测试人员) 我正在尝试下载一个文件并将其重命名以便于查找。我收到一个错误....这是代码 @Test public void allDownload(
我只是在写另一个程序。并使用: while (cin) words.push_back(s); words是string的vector,s是string。 我的 RAM 使用量在 4 或 5
我是 AngularJS 的新手,我遇到了一个问题。我有一个带有提交按钮的页面,当我单击提交模式时必须打开并且来自 URL 的数据必须存在于模式中。现在,模式打开但它是空的并且没有从 URL 获取数据
我正在尝试读取一个文件(它可以包含任意数量的随机数字,但不会超过 500 个)并将其放入一个数组中。 稍后我将需要使用数组来做很多事情。 但到目前为止,这一小段代码给了我 no match for o
有些人在使用 make 命令进行编译时遇到了问题,所以我想我应该在这里尝试一下,我已经在以下操作系统的 ubuntu 32 位和挤压 64 位上尝试过 我克隆了 git 项目 https://gith
我是一名优秀的程序员,十分优秀!