MVC 获取 控制器 传来的 字符串 ,然后跳转到指定的视图 怎么做

本文介绍如何在MVC框架中利用jQuery进行页面元素值的获取,并通过AJAX方式提交到服务器端。示例代码展示了从多个输入框收集信息的过程,并发送POST请求到指定的处理程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MVC 获取 控制器 传来的 字符串  与webform 一样的做法,如果是多个可以采用选择器。

<head>
    <meta name="viewport" content="width=device-width" />
    <title>生产异常报警</title>    
    <link href="~/Content/bootstrap.min.css" rel="stylesheet" /> 
    <script src="~/Scripts/bootstrap.min.js"></script>
    <script src="~/Scripts/jquery-1.10.2.min.js"></script>
    <script type="text/javascript">
    $(function () {
        $("#tab1 a").click(function () {
        if (confirm("是否确认")) {
            $.ajax({
            url: "/Mreply/Index",
            type: "get",
            data: {}
            });
            return false;
            } else {
            return false;
            }
        });
    });
    </script>
</head>
<body>
    <p>
        请单击生产异常报警大类
    </p>
    <table id="tab1" class="table">
    @foreach (var item in Model) {
        <tr>
            <td>
                <a class="btn btn-info btn-lg" href="/Mreply/Create/@item.cinvcname;@item.no">@item.cinvcname</a>
                @*<a class="btn btn-info btn-lg" href="/Mreply/Create/@item.cinvcname;@item.no">@item.cinvcname</a>*@
            </td>
        </tr>
    }


    </table>
</body>
</html>


以上代码   $("#tab1 a")   jquery 选择器  获取 某个id下的所有a,  这里的意思 获取tab1  id 下面 所有的a.  

推荐以下代码

<script type="text/javascript" >
         $(document).ready(function () {                      
             $("#AB2").click
             (
                 function () {
                     var txtno = $("#txtno").val();
                     var txtcinvcname = $("#txtcinvcname").val();
                     var txtSelectedNode = $("#txtSelectedNode").val();
                     var txtparentcode = $("#txtparentcode").val();
                     var txtva01 = $("#txtva01").val();
                     var txtva02 = $("#txtva02").val();
                     var txtva03 = $("#txtva03").val();
                     var txtva04 = $("#txtva04").val();
                     var txtin01 = $("#txtin01").val();
                     var txtin02 = $("#txtin02").val();
                     var txtde01 = $("#txtde01").val();
                     var txtde02 = $("#txtde02").val();
                     var Createperson = '<%=Session["name"].ToString()%>';  
                     $.ajax({
                         url: "Apm.ashx",
                         type: "post",
                         data: { "txtno": txtno, "txtcinvcname": txtcinvcname, "txtSelectedNode": txtSelectedNode, "txtparentcode": txtparentcode,
                             "txtva01": txtva01, "txtva02": txtva02, "txtva03": txtva03, "txtva04": txtva04, "txtin01": txtin01, "txtin02": txtin02, "txtde01": txtde01, "txtde02": txtde02, "Createperson": Createperson, "askfor": "add"
                         },
                         dataType: "text",
                         async: false,
                         beforeSend: function (XHR) {
                         },
                         complete: function (XHR, TS) {
                         },
                         success: function (data) {
                             alert(data);
                         }
                     });
                 }
             );



<think>嗯,用户正在询问如何在SpringMVC中创建处理GET请求并返回视图控制器。结合之前的对话历史,用户应该是在学习SpringMVC控制器开发。用户明确要求查看具体示例,这说明他需要的是可落地的代码参考。根据系统设定,我需要保持LaTeX格式规范,但当前问题主要涉及代码展示。用户提供的站内引用很有参考价值:引用[1]提到SpringMVC跳转机制,引用[2]涉及拦截器,引用[3]包含视图解析器配置——这些都和控制器开发直接相关。特别注意到引用[3]里的@Configuration配置类,这正是视图解析的关键。用户的核心需求很清晰:需要一个完整的控制器示例。因此我会构建包含三个层级的代码:1)控制器类使用@GetMapping注解,2)模型对象承载数据,3)视图解析器配置(参考引用[3])。为增强实用性,准备补充两个重点:在方法里演示如何添加模型属性,在注意事项里强调@EnableWebMvc的重要性——因为引用[3]显示这是开启MVC功能的关键注解。考虑到用户可能进一步探索,还预设了三个技术延伸方向:路径变量用法参考RESTful风格,返回值类型扩展涉及常见坑点,配置优化则呼应引用[2]的拦截器话题。这些相关问题既能延续当前知识点,又能串联起用户之前接触过的内容。</think> 好的,这是一个在Spring MVC中创建处理GET请求并返回视图控制器的清晰示例和说明: **核心步骤:** 1. **创建控制器类:** 使用 `@Controller` 注解标记一个类为Spring MVC控制器。 2. **定义处理方法:** 在控制器类内部定义一个公共方法(方法名自定义)。 3. **映射GET请求:** 使用 `@GetMapping` 注解将特定的HTTP GET请求URL路径映射到该处理方法上。 4. **返回视图名称:** 处理方法执行完业务逻辑(通常需要将数据放入模型 `Model`)后,返回一个 `String` 类型的结果,这个字符串代表需要渲染的视图的逻辑名称(view name)。 5. **配置视图解析器:** Spring通过视图解析器将逻辑视图名称(如 `"home"`)转换成实际的视图资源(如 `/WEB-INF/views/home.jsp`)。 **示例代码:** 1. **控制器类 (`HomeController.java`):** ```java import org.springframework.stereotype.Controller; import org.springframework.ui.Model; // 导入Model类用于传递数据 import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; @Controller // 标记为Spring MVC控制器 public class HomeController { // 映射 GET 请求 "/home" 到 homePage() 方法 @GetMapping("/home") public String homePage(@RequestParam(name="name", required=false, defaultValue="访客") String name, Model model) { // 1. 执行业务逻辑(此处简单处理) // 2. 将数据放入模型(model),以便传递给视图 model.addAttribute("welcomeMessage", "你好, " + name + "!"); model.addAttribute("currentTime", new java.util.Date()); // 3. 返回视图名称 "home" // Spring会根据视图解析器将"home"解析为实际的JSP/Thymeleaf等模板文件 return "home"; } // 另一个示例:处理根路径请求 "/" @GetMapping("/") public String index() { return "redirect:/home"; // 重定向到/home,最终由上面的方法处理 } } ``` 2. **视图文件 (`home.jsp` 或 `home.html`)** (假设你配置JSP作为视图技术,视图文件位于 `/WEB-INF/views/home.jsp`): ```jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE html> <html> <head> <title>首页</title> </head> <body> <h1>${welcomeMessage}</h1> <!-- 展示从Controller传递来的welcomeMessage属性 --> <p>当前时间: ${currentTime}</p> <!-- 展示currentTime属性 --> </body> </html> ``` 3. **视图解析器配置 (Java Config示例):** (参考引用[3]中的视图解析器配置思路,这里针对JSP配置)[^3]: ```java import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.ViewResolverRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration @EnableWebMvc // 启用Spring MVC功能 public class MvcConfig implements WebMvcConfigurer { @Override public void configureViewResolvers(ViewResolverRegistry registry) { // 配置InternalResourceViewResolver解析JSP registry.jsp("/WEB-INF/views/", ".jsp"); // 前:视图文件前缀,后:视图文件后缀 } } ``` **示例说明:** 1. **请求流程 (`/home`):** * 用户访问 `http://your-server/app-context/home?name=小明` * Spring MVC 根据 `@GetMapping("/home")` 找到 `HomeController.homePage()` 方法。 * 方法参数绑定: * `@RequestParam` 从URL查询参数中获取 `name` 的值 (值为“小明”,如果没有提供则使用默认值“访客”)。 * `Model` 对象由Spring自动创建并注入,用于向视图传递数据。 * 方法执行: * 将 `welcomeMessage` 属性(值是拼接后的字符串) 和 `currentTime` 属性(当前时间) 放入 `model`。 * 返回字符串 `"home"`。 * Spring MVC视图解析器(`InternalResourceViewResolver`) 收到视图名称 `"home"`,将其加上前缀 `/WEB-INF/views/` 和后缀 `.jsp`,解析成实际的视图文件路径:`/WEB-INF/views/home.jsp`。 * Spring 将模型数据 (`model`) 暴露给 `home.jsp` (在JSP中通过 `${...}` EL表达式访问)。 * `home.jsp` 被渲染成HTML输出给用户浏览器。 2. **请求流程 (`/`):** * 用户访问 `http://your-server/app-context/` * Spring MVC 根据 `@GetMapping("/")` 找到 `HomeController.index()` 方法。 * 方法直接返回 `"redirect:/home"`。 * Spring MVC 会向客户端浏览器发送一个HTTP重定向指令,状态码为302。 * 浏览器收到重定向指令后,会立即自动发起一个新的请求到 `http://your-server/app-context/home`。 * 新请求 `/home` 再由 `homePage()` 方法处理并渲染视图。(此示例演示了引用[1]中提到的*重定向*发生在客户端的特性)[^1]。 **关键点总结:** * **`@Controller`:** 定义控制器类。 * **`@GetMapping`:** 将特定URL路径的**GET**请求映射到处理方法。 * **`Model`:** 控制器方法的一个常用参数,用于添加属性(键值对),这些属性随后可在视图中访问。 * **`@RequestParam`:** 将请求参数(通常是URL查询字符串或表单字段)绑定到方法参数上。`required=false` 表示参数可选,`defaultValue` 提供默认值。 * **返回值 `String`:** 代表逻辑视图名称,由视图解析器负责解析成真实视图。 * **视图解析器配置 (如 `registry.jsp(...)`):** 告诉Spring去哪里找视图文件(如JSP),并将逻辑名称映射到物理路径(如 `/WEB-INF/views/home.jsp`)。这是确保视图能被正确渲染的关键配置[^3]。 **相关问题:** 1. 如何在返回视图控制器方法中访问 `HttpServletRequest` 或 `HttpSession` 对象?(例如 `@RequestParam` 不适合的场景) 2. 如何使用 `@PathVariable` 注解处理 RESTful 风格的 URL 路径参数?(例如 `/users/{id}`) 3. 除了返回视图名称 (`String`),Spring MVC 控制器方法还可以返回哪些其他类型的结果?(例如 `ModelAndView`, `void`, `ResponseEntity`, 直接返回 `@ResponseBody` 的数据等)[^1][^3]。 4. 在控制器方法执行前/后添加统一逻辑(如日志、权限检查)可以用什么机制?(与引用[2]中提到的 **拦截器(Interceptor)** 相关)[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值