JSP页面获取action传递过来的值

本文介绍了三种在Struts2框架中将数据从Action传递到JSP页面的方法,并展示了如何在JSP页面上显示这些数据。第一种方法使用了ActionContext.getValueStack();第二种方法通过request.setAttribute来设置属性;第三种则利用了session.setAttribute。每种方法都有其应用场景。

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

first class:
————————————–action

public String getUser(){

   List<User> list = userService.finAll();

   //ActionContext.getContext().getValueStack().set("list", list.get(0));//引号内的list就是Jsp页面s标签里卖弄的value

   User u = new User();
   u = list.get(0);

  ActionContext.getContext().getValueStack().set("user", u);

    return "getuser";
}

——————————————jsp

!–<%@ page language=”java” contentType=”text/html; charset=UTF-8”
pageEncoding=”UTF-8”%>
<%@ taglib uri=”/struts-tags” prefix=”s”%>

                <form action="${pageContext.request.contextPath}/user_getUser.action">
                    <table>
                          <s:iterator var="user" value="user" status="status"> 

                        <tbody>

                             <tr>
                            <th><span class="requiredField">*</span>用户名:</th>
                            <td>
                                   <s:property value="#user.name"/>
                                </td>
                            </tr>

                            <tr>
                            <th><span class="requiredField">*</span>用户名:</th>
                            <td>
                                   <s:property value="#user.username"/>
                                </td>
                            </tr>

                        </tbody>

                     </s:iterator>

                    </table>

                </form>

试了很久就会这种,求求其他大神有没有什么办法能把action的对象值显示在Jsp中?

second class :

——————————————————-action
public String getUser(){
List list = userService.finAll();

   //ActionContext.getContext().getValueStack().set("list", list.get(0));//引号内的list就是Jsp页面s标签里卖弄的value

   User u = new User();
   u = list.get(0);

 // ActionContext.getContext().getValueStack().set("user", u);

  ServletActionContext.getRequest().setAttribute("users", u);

    return "getuser";

}
——————————————————-jsp

                                <tr>
                                    <th><span class="requiredField">*</span>用户名:</th>
                                    <td><s:property value="#user.name" /></td>
                                </tr>

                                <tr>
                                    <th><span class="requiredField">*</span>用户名:</th>
                                    <td>第一种:
                                    <%
                                    User u = (User)request.getAttribute("users");

                                    out.print(u.getEmail());

                                    %>
                                    </td>
                                    <td>
                                    第二种:
                                    ${users.getEmail()}
                                    </td>
                                </tr>

                            </tbody>

third class:

———————————action
public String getUser(){

   List<User> list = userService.finAll();
   User u = new User();
   u = list.get(0);
  ServletActionContext.getRequest().getSession().setAttribute("session", u);

    return "getuser";
}

———————————jsp


*第三种:

${sessionScope.session.addr }


这里写图片描述

### 如何在 JSP 页面获取单选按钮 (Radio Button) 的选择 #### 使用表单提交方式获取单选按钮的 当用户选择了某个选项并点击提交按钮时,可以通过 `request.getParameter()` 方法来获取被选中的单选按钮对应的。下面是一个简单的例子: ```html <form action="process.jsp" method="post"> 性别: <input type="radio" name="gender" value="male"> 男 <input type="radio" name="gender" value="female"> 女 <br> <input type="submit" value="Submit"> </form> ``` 在处理请求的目标页面 (`process.jsp`) 中可以这样写入 Java 代码片段以接收参数[^1]: ```java <% String gender = request.getParameter("gender"); out.println("您选择了:" + gender); %> ``` 如果希望预先设置某些单选框处于已勾选的状态,则可以在 HTML 属性里加入条件判断语句实现这一点。 对于从数据库检索到的数据,在显示给用户的界面上保持其原有的选择状态,可采用如下方法构建带有默认选中项的单选组[^3]: ```jsp <label>性别:</label> <input type="radio" name="sex" value="男" <c:if test="${user.sex eq '男'}">checked="checked"</c:if>> 男 <input type="radio" name="sex" value="女" <c:if test="${user.sex eq '女'}">checked="checked"</c:if>> 女 ``` 这里利用了 EL 表达式 `${}` 和 JSTL 标签 `<c:if>` 来完成逻辑控制,使得只有当服务器端传递过来的对象属性匹配指定条件时才会应用 `checked` 属性使该选项呈现为选定样式。 另外一种情况是从客户端脚本的角度出发,比如通过 JavaScript 获取当前已被选中的单选按钮的。这通常用于不需要刷新整个网页就能执行特定功能的情形下,例如验证输入或触发其他事件响应。此时可以用 jQuery 库简化 DOM 操作过程[^2]: ```javascript var selectedValue = $("input[type='radio'][name='exampleName']:checked").val(); console.log(selectedValue); // 输出所选至浏览器开发者工具控制台 ``` 此段 JS 代码会找到名称为 `exampleName` 的所有单选按钮集合,并从中筛选出已经被标记为 "checked" 的那个成员,最后读取它的 `value` 属性作为最终的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值