我有一个表,里面有100个字段,需要在一个页里编辑保存,但保存的时候有时会保存不了有时候可以,是不是因为一个页面的字段太多了,还是其他什么原因?大家有什么好的方法对这样的情况进行合理的安排啊?
注:希望还是在一个页面里编辑保存数据。
注:希望还是在一个页面里编辑保存数据。
解决方案 »
- 如何获取其余天数?
- J2EE程序中如何还原数据库(SQL2005)? 急啊!
- tomcat5.5.7集群怎么操作
- Hibernate 配置1对多,插入等问题的demo
- 初学者写了一段执行不了的代码,请nn帮忙
- 我想查询一个数据表后作一个图形(直方图、折线图、饼图等)输出,显示在WEB页面上,请问如何做到?
- html页面转word文档
- 【Struct框架】如何修改index.do所显示的页面?
- 请教各位高手:关于JSP页面的执行
- 请各位高手帮忙/如何能访问在如下目录的Servlet/~~~~~~~~~
- 初学jsp 有个问题请高手们指点迷津 能快点吗(公司的人催着我要)!!!!!!!!!!
- 困扰我很久的关于在linux服务器上部署tomcat的问题,请高手指教!
你可以用反射或者什么的做一个循环的getParameter就可以了,例如你可以把数据entity的pojo字段定义和你数据库字段还有jsp页面的都一样,这样就可以利用反射动态读取了以后你加了数据字段也不用修改程序!
能不能举个例子啊,让大家学习一下,谢谢。
或者字段类型的问题你再检查一下但是回来来说你这个处理实在是太巨大了
或者字段类型的问题
读的时候不要一个个request 了
直接for(i=0;i<n;i++)//读取每次字段名 为arr[i];大概是这么个意思 不知道对不对
//Created by MyEclipse Struts
// XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_4.1.1/xslt/JavaClass.xslpackage com.tiger.monitor.tableinfo.action;import java.lang.reflect.Method;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.hibernate.Session;
import org.hibernate.Transaction;import com.common.form.FmFbpzfb;
import com.common.tools.BaseDBControl;
import com.common.tools.HibernateUtil;
import com.tiger.monitor.tableinfo.dao.TableInfoDao;
import com.tiger.monitor.tableinfo.form.TableInfoForm;/**
* MyEclipse Struts
* Creation date: 10-18-2006
*
* XDoclet definition:
* @struts.action path="/tableInfoAction" name="tableInfoForm" scope="request" validate="true"
*/
public class TableInfoAction extends Action { // --------------------------------------------------------- Instance Variables // --------------------------------------------------------- Methods /**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)
{
TableInfoForm tableInfoForm = (TableInfoForm) form;
// TODO Auto-generated method stub
String flow_id = request.getParameter("flowid"); // 工作流号
String file_code = request.getParameter("filecode"); //文件号
TableInfoDao dao = new TableInfoDao(flow_id,file_code,tableInfoForm);
// 保存主表
dao.saveZb();
// 保存附表
/*
* 附表名字命名(f1_1_1)以f开头f1表示主表中的第一个附表,f2表示主表中第二个附表,
* 中间的数字表示第几条记录,结尾的数字,表示 text在表中的序号
控件取名意义end:跳出这一行,break:跳出这个表,over离开附表循环
//存放到数据库按结尾的数字,如:f1_1_2,数据库里面对应的s2
* */
Long zbKey = dao.getZbKey();
String text_name =""; ////存放莫一个控件的名字
String text_name_value = ""; ////存放莫一个控件的value
String break_b = "no"; ///跳出表
String break_all = "no"; ////结束循环
BaseDBControl tool = new BaseDBControl();
FmFbpzfb fb = null; //循环中的临时对象
Method method =null; //循环中的临时对象
Class clas = FmFbpzfb.class;
if(request.getParameter("f")==null || (!request.getParameter("f").equals("no")) )
for(int b =1;;b++) ////遍历所有附表
{
for(int h = 1;;h++) ////遍历所有行
{
fb = (FmFbpzfb)tool.find("from FmFbpzfb where fileId="+zbKey.longValue()+" and tableid='"+b+"' and rowid="+h);
if(fb==null) ///数据库中没有这条记录
{
fb = new FmFbpzfb();
fb.setFileId(zbKey);
fb.setTableid(""+b);
}
break_b = "no";
break_all = "no";
for(int l=1;;l++) ////遍历所有列
{
break_b = "no";
break_all = "no";
text_name = "f"+b+"_"+h+"_"+l;
text_name_value = request.getParameter(text_name);
if(text_name_value==null) text_name_value="";
if( text_name_value.equals("end") )
{
break;
}else
if( text_name_value.equals("break") )
{
break_b = "yes";
break;
}else
if( text_name_value.equals("over") )
{
break_b = "yes";
break_all = "yes";
break;
}
System.out.println("text_name="+text_name);
fb.setRowid( new Integer(h) );
try{
method = clas.getMethod("setS"+l,new Class[]{String.class});
method.invoke(fb,new Object[]{text_name_value.trim()});
}catch(Exception e)
{
System.out.println("更新附表异常="+e.toString());
}
}///结束后,保存一行记录
tool.saveOrUpdate(fb);
if(break_b.equals("yes"))
break;
}
if(break_all.equals("yes"))
break;
}
return null;
}}