使用struts架构使用自带的json包返回json数据时发现重复,代码改正后解决,如下:具体原因还是没有太清楚!记录下。。。
ResultSet rs=null;
GroupPurchasePackage groupPurchaseObj=new GroupPurchasePackage();
try {
conn=DBUtilsC3P0.getInstance().getConnection();
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()){
groupPurchaseObj.setId(Integer.parseInt(rs.getString("id")));
ResultSet rs=null;
try {
conn=DBUtilsC3P0.getInstance().getConnection();
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()){
GroupPurchasePackage groupPurchaseObj=new GroupPurchasePackage();
groupPurchaseObj.setId(Integer.parseInt(rs.getString("id")));
GroupPurchasePackage groupPurchaseObj=new GroupPurchasePackage();
在这里GroupPurchasePackage不能首先实例化 要在rs.next有结果的时候在实例化,不然当你返回值的时候一直都有值,只是并未被赋值而已
rs是结果集。查询出的记录是一个列表,初始时指针指向的是第一条记录之前的。
每rs.next()一次指针都会向后移动一位,指向下一条记录。
如果没有设置结果集的参数,那么正常情况下结果集都只能往下走,不能退回,也就是rs.next()后,是不能再指向已经指过的记录了,但是如果设置了
conn.createStatement(rs.TYPE_SCROLL_INSENSITIVE,rs.CONCUR_READ_ONLY);
那么就可以使用rs.first()、rs.last()等方法自己移动结果集指针,但是这种特性(可滚动结果集)是需要数据库支持的,好在现在大部分数据库都是支持的。
rs.first();//如果有记录,再将指针指向第一条(需要设置结果集类型)
分享到:
相关推荐
在Struts2中,JSON插件允许控制器(Action)返回JSON格式的数据,而无需额外的转换工作。这样,前端的AJAX请求可以直接接收到JSON数据,并利用JavaScript进行处理,更新页面内容,实现无刷新的用户体验。 **Struts2...
JSON、Struts2和Ajax是Web开发中的关键技术,它们在文件上传场景中有着广泛的应用。在本项目中,我们将深入探讨如何使用这些技术实现文件上传,特别是当用户选择相同的文件进行多次提交时的情况。我们将使用...
4. **返回JSON数据**:将JSON数据作为响应体返回给前端。 5. **前端解析与更新**:Ajax回调函数接收到数据后,解析JSON,更新下一个下拉列表的选项。 6. **重复步骤2-5**:如果还有更多级别,继续这个过程,直到所有...
5. 前端JavaScript(可能使用dTree库)解析JSON数据,生成并渲染树状视图。 6. 用户在树视图中进行交互,触发新的HTTP请求,重复以上过程。 总的来说,这个项目展示了如何结合使用多种技术来构建一个功能强大的Web...
4. **struts2-json-plugin-2.3.32**(可能是重复列出):同样,这个插件也是用于JSON支持,可能是因为误输入导致的重复。不过,这再次强调了Struts2对JSON支持的重视,特别是在现代Web应用中,JSON作为数据传输格式...
### 基于jsTree的无限级树JSON数据转换知识点详解 #### 一、jsTree简介及应用场景 jsTree 是一款强大的 jQuery 插件,用于创建功能丰富的树形结构控件。它支持多种主题风格,并提供了丰富的 API 来操作树形结构。在...
项目练习部分涉及到使用Ajax实现异步请求并返回JSON数据,这通常通过Struts2的JSON插件实现。文件下载则涉及到流处理和HTTP响应头的设置,Struts2提供了便捷的方式处理这一场景。 总的来说,Struts2框架通过其强大...
例如,你可以创建一个名为`AjaxAction`的类,其中包含一个返回JSON数据的方法。 3. **定义结果类型**:在Struts配置中,为AjaxAction定义一个返回JSON的结果类型。这可以通过添加`<result type="json">`节点来完成...
- Action返回一个Result,Struts2根据Result类型决定如何响应用户,如渲染视图或返回JSON数据。 4. **优点**: - 灵活性高:通过拦截器可以方便地扩展功能。 - 易于测试:支持JUnit进行单元测试。 - 良好的MVC...
- 根据Action返回的结果生成最终的响应内容,例如HTML页面、JSON数据等。 #### 四、Struts2的扩展性与灵活性 Struts2的设计具有高度的可扩展性和灵活性。开发者可以根据项目需求自定义拦截器、结果类型、类型转换...
4. **结果类型**:Action执行后,会返回一个结果,这个结果可以是跳转到另一个页面、发送JSON数据等。Struts2支持多种结果类型,如dispatcher(用于转发到JSP)、stream(用于下载文件)等。 5. **OGNL(Object-...
- **Result Types**:定义Action执行后的结果,如渲染JSP页面或返回JSON数据等。 #### 4. 配置Struts2 - **配置文件**:通常使用`struts.xml`文件进行配置,可以定义Action映射、拦截器栈等。 - **XML配置示例**...
Result则定义了Action执行后如何展示结果,比如跳转到一个新的JSP页面或者返回JSON数据。Interceptor是拦截器,可以看作是在Action执行前后插入的中间逻辑,常用于日志记录、权限验证等。 这个项目可能包含了以下...
- **Action类**:在Struts中,Action类是处理用户请求的核心组件,负责接收请求,进行业务处理,并返回结果到视图层。 - **配置文件**:主要包括struts-config.xml,这是Struts的配置中心,定义了Action的映射、...
- **前端交互**:EasyUI使用jQuery的ajax方法发送请求,接收并解析JSON数据,更新DataGrid或表单。 4. **页面布局与组件**: - **Layout**:EasyUI的Layout组件可以方便地构建复杂的页面布局。 - **菜单与导航**...
-插件架构:Struts2拥有丰富的插件支持,如Freemarker、JSP、Velocity等视图技术,以及JSON、XML等数据交换格式。 2. **工作原理** - 用户请求到达Web服务器后,Struts2 Filter(StrutsPrepareAndExecuteFilter)...
6. **插件支持**:Struts2有丰富的插件库,如Freemarker和Velocity模板引擎、JSON支持、上传下载插件等,增强了框架的功能和易用性。 7. **ActionContext**:ActionContext是Struts2的核心上下文对象,保存了请求和...
总之,JSONStruts是Struts2框架的一个强大补充,它简化了JSON数据处理,提高了Web应用的可交互性。正确理解和使用JSONStruts.jar对于提升Java Web开发效率和构建高质量的RESTful服务具有重要意义。
3. Result:Action执行后的结果,可以是重定向、转发到一个JSP页面或者返回JSON、XML等格式的数据。 4. OGNL:用于在Action和视图之间传递数据的语言,使得数据绑定更加灵活。 三、MVC模式详解 在Struts2中,Model...