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

Spring Boot多个控制器并扩展url

佴波鸿
2023-03-14

这是控制器1:

@Controller
@RequestMapping("/clusters")
public class ClusterController {

    @Autowired
    private ClusterService clusterService;

    @RequestMapping(method = RequestMethod.GET)
    public String getAllClusters(Model model){

        List<Cluster> clusters = this.clusterService.getAllClusters();
        model.addAttribute("clusters", clusters);

        return "clusters";
    }

    @RequestMapping(value = "/clusterInfo", method = RequestMethod.GET)
    public String getCluster(@RequestParam("id") Integer id, Model model){
        Cluster cluster = this.clusterService.findClusterById(id);
        model.addAttribute("cluster", cluster);

        return "testcluster";
    }

控制器2:

@Controller
@RequestMapping("/requirements")
public class RequirementController {


    @RequestMapping("/")
    public String getRequirements(){

        return "requirements";
    }
}

首先,我看到所有集群。之后,我可以单击站点上的按钮来查看单个群集(控制器1中的方法2)。

当我看到单个集群时,我想单击一个按钮以查看链接到该集群的要求。其方法在控制器 2 中。

当从控制器1转到控制器2时,我希望有以下url路径。

http://localhost:8080/clusters

http://localhost:8080/clusters/cluster info?id=1

http://localhost:8080/clusters/cluster info?id = 1/要求

这是我用来从url 2转到3的按钮。更多

它不起作用并给我一个错误。我的问题是,如何使用指定的url路径从控制器1到2并在控制器2中检索id=1?

这是我的第一个项目,所以我对Spring Boot和Thymeleaf了解不多。

共有1个答案

沈巴英
2023-03-14

标记查询字符串参数的开头,并且根据 URI RFC 标准,不能在查询字符串参数之后指定路径。我建议改为将 URI 更改为:

http://localhost:8080/clusters/<clusterId>/clusterInfo
Ex: http://localhost:8080/clusters/1/clusterInfo

而且

http://localhost:8080/clusters/<clusterId>/requeriments
Ex: http://localhost:8080/clusters/1/requirements
 类似资料:
  • 如果要对已存在的控制器进行二次开发,为了方便升级不建议直接对内核文件直接修改该,您可以通过"MY_*.php"的形式进行二次开发。 例如您要对改phpcms/mood/index.php进行二次开发。您可以在与index.php同级的目录下建立"MY_index.php" MY_index.php代码如下: class MY_index extends index{ function __con

  • Szenario:我有两个扩展,它们用一些特定字段扩展了。在TYPO3 9之前,我必须使用以下打字脚本配置对新闻扩展的依赖关系进行配置: 模型扩展了基本扩展的模型: 在TYPO3 10中,在(中断:#87623): 只要您只有一个扩展新闻扩展名的扩展名,它就可以工作多久。如果您有第二个扩展并启用TYPO3缓存,您将得到一个错误,即在第一个扩展中添加的字段在新闻扩展的模板中不可用。奇怪的是,这个问题

  • 我正在尝试开始使用TYPO3扩展,并遵循本教程了解基本知识。 在后端,一切正常,但在前端,我得到一个错误: 哎呀,发生错误!代码:20170209104827c3b58d58-{"异常":"异常'反射异常'消息'Tx_Inventory_Controller_InventoryController不存在' 我的文件与教程中的完全相同。我不知道是什么原因造成的。我想我在名称空间方面犯了一些愚蠢的错误

  • 问题内容: 这是一个现实的Angular问题,我无法解决。我喜欢Angular,但是这个问题现在困扰着我很多。 扩展现有控制器功能,并在应用程序的另一页上使用扩展控制器的最佳实践是什么?换句话说: 如何在Angular中继承控制器? 编辑 -2014年9月23日,不要以为我的原始用例的描述会帮助访问者更好地理解我在这里的用意。我认为这使人们偏离了真正的问题。 问题答案: 半年后,我想我完全了解发生

  • 我通过composer安装了上述扩展,并遵循每个步骤的文档;在我的发言中: 运行视图时,我收到以下错误消息: {"name":"无效配置","mail":"没有找到类'\kartik\date\DatePicker',它是DateControl'date'格式所必需的。\n\n请确保您安装了'yii2-widget'或'yii2-widget-datepicker'扩展之一。要安装,您可以从您的应

  • 主要内容:org.springframework.context.ApplicationContextInitializer,org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor,org.springframework.beans.factory.config.BeanFactoryPostProcessor,,,,,,,,,,,,1.可扩展的接口启动调用顺序图 ApplicationConte