关于ValueSatck
1.在值栈中添加一个元素的属性:
package ajax.frist; import java.sql.*; import java.util.*; import com.opensymphony.xwork2.ActionSupport; public class query extends ActionSupport { ArrayList<user> al=new ArrayList<user>(); public ArrayList<user> getAl() { return al; } public void setAl(ArrayList<user> al) { this.al = al; } @Override public String execute() throws Exception { Class.forName("com.mysql.jdbc.Driver"); Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/test"); Statement st=conn.createStatement(); ResultSet rs=st.executeQuery("select * from member"); while(rs.next()) { user temp=new user(); temp.id=rs.getString("mid"); temp.name=rs.getString("name"); temp.pwd=rs.getString("password"); al.add(temp); } return "success"; } }
例如上面代码,如果希望al在值栈中出现,必须要给al添加getter和setter方法,不然这个变量al是不会出现在值栈中的。
接着我们可以通过OGNL表达式去到al中的元素和元素属性值。就像这样:
<s:property value="al[0].name"/>
得到值栈中al容器的第一个user的name属性。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端