综合案例(controller层编写) | 学习笔记

简介: 快速学习综合案例(controller层编写)。

开发者学堂课程【Lucene知识精讲与实战(下)综合案例(controller层编写)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/701/detail/12347


综合案例(controller层编写)

 

1、controller,提交的表单的路径是 list,也就是在 controller 中,写查询方法。由于类上写了 controller 注解,返回 string,按照 springvc 编写方式返回的字符串是页面名,

@ controller

@RequestMapping("/list")

public class SearchController {

@RequestMapping加注解,在注解中应该写方法的路径,但由于页面中提交的路径就是list,所以可以什么都不写,默认在里面

public String query(string querystringprice) { 查询关键字,namequerystring

}

2、在表单中提交还有两个,一个是价格,一个是配置当前页,都是隐藏域,在页面上如果选价格,触发 js 方法 filter

  • 0-500
  • 500-1000/li>
  • price', '1000- 5000')">1000- 5000

  • 5000-10000
  • <а hrеf= "jаvаѕсrірt:fіltеr('рrісе', " 10000- 50000' )">10000- 50000

    <а hrеf= "jаvаѕсrірt:fіltеr(' рrісе',' 50000- 100000' )">50000- 100000

    3、对price表单元素进行赋值,1000- 5000字符串。

    public String query(string querystring,string price)

    4、接收当前页,第一页第二页d第三页,变量名,必须跟页面上隐藏域的name属性值保持一致,配置当前页

    public String query(string querystringstring priceinteger page)

    5、抛日常。

    /**

    * 搜索

    *@param queryString查询的关键字

    *@param price 查询价格范围

    *@param page当前页

    *@return

    *@throws Exception

    */

    @RequestMapping

    public String query(String queryString, String price, Integer page) throws Exception{

    }

    6、做准备目录,返回search.html文件,直接输入页面名称即可,不用输入后缀名。

    return"search"

    7、对查询的条件进行数据回显,条件传进结果后进行封装,封装完返回给页面,把条件都要带上,默认对象进行返回

    public String query(String queryString, String price, Integer page, Model model) throws Exception{

     8、看页面,查询条件回显时,页面上的当前页是从返回的里面取的。

    //查询条件回显到页面

    model. addAttribute(" queryString" , queryString);查询关键字

    model. addAttribute("price" , price);价格

    model. addAttri bute("page", page);当前页

    return" search" ;

    9、处理当前页,第一次查询时当前页有可能是空的,什么都没传进来。

    //处理当前页

    判断是否为空

    if (StringUtils. isEmpty(page)) {

    page = 1;

    }

    当前页是负数,不合理

    if (page <= 0) {

    page = 1;

    }

    //调用service查询

    关于它的接口和实现类都已写出,所以进行注入。

    @Autowired

    private SearchService searchService;

    10、复制 public String query(String queryString, String price, Integer page, Model model) throws Exception作为 service 接口,返回值不对,不应该返回页面,应该返回数据,封装实体类为resultmodel,封装完之后进行返回。

    public resultmodel query(String queryString, String price, Integer page, Model model) throws Exception

    11封装后的数据包含查询到的结果集,商品总数,总页数,当前页。

    //商品列表

    private List skuList;

    //商品总数

    private Long recordCount ;

    //总页数

    private Long pageCount;

    //当前页

    private long curPage;

    12在实现类中,在controller中就可以进行调用。

    searchService . query(queryString, price, page);

    model 是关于 springac,所以在 service 中用不到,所以可以删掉

    Public ResultModel query(String queryString, String price, Integer page) throws Exception{

    13返回结果集,不会报错。

    ResultModel resultModel=searchService . query(queryString, price, page);

    14ResultModel 查询到结果集,查询到的结果对象返回到页面,页面进行展示。

    15文档中的数据,图片都需要 ResultModel 进行展示,把 ResultModel 放入springac 的对象中,把它传到页面中进行展示。值是 ResultModel,页面遍历数据,有 for 循环,result 中有 skulist 结果集。

    model. addAttribute ( "result ", resultModel);

    Controller封装完毕。

     

     

    相关文章
    |
    1天前
    |
    云安全 数据采集 人工智能
    古茗联名引爆全网,阿里云三层防护助力对抗黑产
    阿里云三层校验+风险识别,为古茗每一杯奶茶保驾护航!
    古茗联名引爆全网,阿里云三层防护助力对抗黑产
    |
    5天前
    |
    Kubernetes 算法 Go
    Kubeflow-Katib-架构学习指南
    本指南带你深入 Kubeflow 核心组件 Katib,一个 Kubernetes 原生的自动化机器学习系统。从架构解析、代码结构到技能清单与学习路径,助你由浅入深掌握超参数调优与神经架构搜索,实现从使用到贡献的进阶之旅。
    277 139
    |
    5天前
    |
    人工智能 中间件 API
    AutoGen for .NET - 架构学习指南
    《AutoGen for .NET 架构学习指南》系统解析微软多智能体框架,涵盖新旧双架构、核心设计、技术栈与实战路径,助你从入门到精通,构建分布式AI协同系统。
    294 142
    |
    16天前
    |
    存储 关系型数据库 分布式数据库
    PostgreSQL 18 发布,快来 PolarDB 尝鲜!
    PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
    |
    11天前
    |
    缓存 并行计算 PyTorch
    144_推理时延优化:Profiling与瓶颈分析 - 使用PyTorch Profiler诊断推理延迟,优化矩阵运算的独特瓶颈
    在2025年的大模型时代,推理时延优化已经成为部署LLM服务的关键挑战之一。随着模型规模的不断扩大(从数亿参数到数千亿甚至万亿参数),即使在最先进的硬件上,推理延迟也常常成为用户体验和系统吞吐量的主要瓶颈。
    357 147
    |
    5天前
    |
    人工智能 移动开发 自然语言处理
    阿里云百炼产品月刊【2025年9月】
    本月通义千问模型大升级,新增多模态、语音、视频生成等高性能模型,支持图文理解、端到端视频生成。官网改版上线全新体验中心,推出高代码应用与智能体多模态知识融合,RAG能力增强,助力企业高效部署AI应用。
    294 1
    |
    11天前
    |
    机器学习/深度学习 存储 缓存
    92_自我反思提示:输出迭代优化
    在大型语言模型(LLM)应用日益普及的今天,如何持续提升模型输出质量成为了业界关注的核心问题。传统的提示工程方法往往依赖一次性输入输出,难以应对复杂任务中的多轮优化需求。2025年,自我反思提示技术(Self-Reflection Prompting)作为提示工程的前沿方向,正在改变我们与LLM交互的方式。这项技术通过模拟人类的自我反思认知过程,让模型能够对自身输出进行评估、反馈和优化,从而实现输出质量的持续提升。
    429 136
    |
    15天前
    |
    存储 人工智能 搜索推荐
    终身学习型智能体
    当前人工智能前沿研究的一个重要方向:构建能够自主学习、调用工具、积累经验的小型智能体(Agent)。 我们可以称这种系统为“终身学习型智能体”或“自适应认知代理”。它的设计理念就是: 不靠庞大的内置知识取胜,而是依靠高效的推理能力 + 动态获取知识的能力 + 经验积累机制。
    414 135
    |
    14天前
    |
    存储 人工智能 Java
    AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
    本文讲解 Prompt 基本概念与 10 个优化技巧,结合学术分析 AI 应用的需求分析、设计方案,介绍 Spring AI 中 ChatClient 及 Advisors 的使用。
    543 133
    AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话