当前位置: 首页 > 知识库问答 >
问题:

如何在Controller中编写例程并使用URL映射它。浏览URL,它应该会显示结果

岳茂
2023-03-14

方法在大学中增加。java模型

公共静态列表列表CollegesForCity(String pCity){back entityManager(). createQuery("SELECT o From College o WHEREo.addressInfoId.city=?1",College.class). setParameter(1, pCity). getResultList();}

public static List<College> listColleges(String pCity, String pState, String pCountry) {
    return entityManager().createQuery("SELECT o from College o WHERE o.addressInfoId.city=?1 AND (?2 IS null or o.addressInfoId.state=?2) AND (?3 IS null OR o.addressInfoId.country=?3)", College.class)
            .setParameter(1, pCity)
            .setParameter(2, pState)
            .setParameter(3, pCountry)
            .getResultList();
}

public static List<College> listColleges(String pCity, String pState, String pCountry, int pFirstResults, int pMaxResults) {
    return entityManager().createQuery(" ", College.class)
            .setParameter(1, pCity)
            .setParameter(2, pState)
            .setParameter(3, pCountry)
            .setFirstResult(pFirstResults)
            .setMaxResults(pMaxResults)
            .getResultList();
}

public static long countColleges(String pCity, String pState, String pCountry) {
    return entityManager().createQuery("SELECT COUNT(o) from College o WHERE o.addressInfoId.city=?1 AND (?2 IS null or o.addressInfoId.state=?2) AND (?3 IS null OR o.addressInfoId.country=?3)", Long.class)
            .setParameter(1, pCity)
            .setParameter(2, pState)
            .setParameter(3, pCountry)
            .getSingleResult();
}

}

这是我在collegeController.java的例行公事

//http://localhost:8080/college/colleges/find?city=pune

@RequestMapping(value="/find", method = RequestMethod.GET)
public String findCollegeForCity(Model uiModel, @RequestParam(value = "city", required = true) String pCity,
       @RequestParam(value = "country", required = false) String pCountry,
       @RequestParam(value = "state", required = false) String pState,
       @RequestParam(value = "page", required = false) Integer page,
       @RequestParam(value = "size", required = false) Integer size) {
    if (page != null || size != null) {
        int sizeNo = size == null ? 10 : size.intValue();
        final int firstResult = page == null ? 0 : (page.intValue() - 1) * sizeNo;
        uiModel.addAttribute("colleges", College.listColleges(pCity, pState, pCountry, firstResult, sizeNo));
        float nrOfPages = (float) College.countColleges(pCity, pState, pCountry) / sizeNo;
        uiModel.addAttribute("maxPages", (int) ((nrOfPages > (int) nrOfPages || nrOfPages == 0.0) ? nrOfPages + 1 : nrOfPages));
    } else {
        uiModel.addAttribute("colleges", College.listColleges(pCity, pState, pCountry));
    }
    return "colleges/list";
}

}

共有1个答案

梁渊
2023-03-14

我认为您的方法签名中缺少一个< code > @ path variable String city :

@RequestMapping(value="/{city}",params = { "find=city", "form" }, method = RequestMethod.GET) 
public String findCollegeForCity(Model uiModel, @PathVariable String city) { 
   uiModel.addAttribute("colleges", College.listCollegesForCity(city)); 
   return "colleges/find"; 
} 
 类似资料:
  • 问题内容: 我有Java Desktop应用程序,该应用程序在中显示一些信息,其中可能包含某些单元格中包含一些文本的URL。如何仅使URL可单击,并允许用户在默认浏览器中单击打开它。 问题答案: 您可以在自定义中使用此处显示的方法。选择之后,您可以使用URI。 附录:您可以将其用于编辑器组件并侦听与链接相关的事件。

  • 问题内容: 我的问题是,单击按钮后,它会显示目录中的所有文件供选择,然后所选的图像会正确显示在GUI中。但是,当我第二次单击“浏览”按钮时,它仅显示旧图像,而不显示新图像。请帮助我。 作为参考,我上传了UI。 问题答案: 每次选择新图像时,都在这里不必要地创建了组件,并且错误地出现在这里: 相反,我建议你在选择任何文件/图像之前,从一开始就创建所有这些组件,然后在此方法中,根据图像创建一个Imag

  • 我想将我的应用程序迁移到Spring Boot Jar部署。它目前使用没有启动的Spring4。 我在上有一个REST-API侦听器,在上有一个JavaScript-fronten,可以在上访问。 现在我找不到在靴子里做同样的事情的方法。 通过更改属性,我设法在处获得了api监听,但是我没有在处注册第二个servlet来为我的js-frontend服务。我知道jar部署不支持,我还知道Spring

  • 问题内容: 我想知道是否有任何方法可以解析这样的URL: 进入 类似于Firefox进行的URL重写,即仅粘贴以前的URL,然后将其发送到服务器(除非有这样的站点,否则没有响应),然后从导航栏中复制URL并将其粘贴到其他位置。 使用给我这个(不需要的)输出: 不幸的是,我收到问题开头所示的字符串,因此直接使用不起作用。 我天真地尝试了这个: 并给出以下(更好的)输出: 但是我不确定是否有针对此问题

  • 问题内容: 我有一个内容为web.xml的文件: 我尝试过要求 这两个请求都由Servlet2处理。为什么? 更新 谢谢你们的帮助。我意识到行为取决于servlet映射声明的顺序。我尝试了这个web.xml 结果: 问题答案: 从Servlet 3.0 规范开始,这是Web容器在收到请求后必须定位servlet的方式(重点是我的): 用于映射到servlet的路径是来自请求对象的请求URL减去上下

  • 我试过请求 这两个请求都由Servlet2处理。为什么? 更新 结果: