1)接收参数
1. 用属性接受参数给Action
注意Action里的属性名就尽量与要传递的属性名相同
(注意不是直接给Action中的同名属性直接赋值)
如链接: <a href="user/user!add?name=a&age=8">添加用户</a>
它用调UserAction的setName(),和setAge()方法 然后再调add()方法
相应在struts.xml中的配置:
<package name="user" extends="struts-default" namespace="/user">
<action name="user" class="user.action.UserAction">
<result>/user_add_success.jsp</result>
</action>
</package>
2. 使用DomainModel接受参数给Action.
如链接: <a href="user/user!add?user.name=a&user.age=8">
这时struts2 会在struts.xml中找到相应的Action(即下面的UserAction),
然后 new UserAction().setUser().setName()
之后再调用Action的add()方法
注意一定要把DMI 打开,在struts.xml中加入
<constant name="struts.enable.DynamicMethodInvocation" value="true" /> ,否则会出现下面信息
严重: Could not find action or result
There is no Action mapped for namespace /user and action name user!add. - [unknown location]
....
struts.xml的配置同上
//UserAction.java
public class UserAction extends ActionSupport {
private User user;
public String add() {
System.out.println("name=" + user.getName());
System.out.println("age=" + user.getAge());
return SUCCESS;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
当前台的属性跟DomainModel(即User) 不能完全匹配时,可用DTO来解决
解决办法:
Action中用UserDTO 来接受前台传来的属性,然后再 new User(UserDTO) ,之后可能就是save(User user)
.
3. 用模型驱动来接受参数(ModelDriven)
这时Action应实现ModelDriven
链接写法:<a href="user/user!add?name=a&age=8">添加用户</a>
过程: 当前台请求被struts2的filter拦截后,new UserAction().getModel()
把得到的Model(即User)返回给struts2
之后,user().setName() , user().setAge()
这样就把参数接受过来了
struts.xml的配置同上
//UserAction.java
public class UserAction extends ActionSupport implements ModelDriven<User>{
private User user = new User(); //注意要自己new
public String add() {
System.out.println("name=" + user.getName());
System.out.println("age=" + user.getAge());
return SUCCESS;
}
@Override
public User getModel() {
return user;
}
}
2) 中文问题
在struts.xml中加入 <constant name="struts.i18n.encoding" value="GBK" /> 即可
struts2.1.16 这样加不行,本身的bug
另处,constant 中的常量可以在 struts.core.2.1.18.jar引入包 ->static文件夹 ->default.properties文件中查到
分享到:
相关推荐
中文版,赛普拉斯天线设计文档,非常详细,从设计到调试,到参数的说明和解释。对于初学者,是非常建议。天线设计和射频布局是无线系统中的关键组件,它负责发送和接收来自空中的电磁辐射。 终端客户从某个 RF 产品 ...
9.9. 公共问题的解决方案 9.9.1. 对一个特定的 DataSource 使用错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 11.1. 简介 ...
3.各参数设置、输入字符串自动保存(ini配置文件,不写注册表),启动自加载; 4.接收窗口支持ASCII/HEX切换显示,发送支持ASCII/HEX; 5.发送窗口宽度可调,发送窗口大小可调; 6.接收窗口的字符可保存成文件; 7.支持...
但在接收浏览器发送的带中文URL时,取参数就会是乱码。经过查找资源,发现大部分浏览器,中文一般会先转码为utf-8,此时,idHttpServer控件会根据请求头中ContentType的Chatset进行相应的转码,以形成正确的参数。但...
asp.net默认的编码是UTF-8 js文件里的编码也是UTF-8 当你要在aspx页面上进行传中文参数时会出现乱码 asp.net中文乱码:asp.net(C#)中文...<-----request.aspx--接收参数页-----> <----response.aspx--传送参数页----->
在使用myeclipse过程中,我使用ajax同步请求传递参数到后台却出现中文乱码,这是我解决问题的代码,希望对您有所帮助
PHP接收GET中文参数乱码深入研究.
4、RcvByte----------------------字节数据接收函数 5、Ack_I2c----------------------------应答子函数 6、NoAck_I2c------------------------非应答子函数 7、ISendByte--------向无子地址器件发送字节数据函数 8...
利用MFC技术结合MSComm控件,使用C++语言编写。程序功能包括手动设置串口参数,串行接收和发送数据,可以显示接收数据和保存接收数据等功能。此程序可以作为单片机与微机串口通信时的调试工具
MiniLED屏诺瓦科技LED接收卡MRV220-2详细参数规格使用手册中文版.docx
003-面向对象-03-设计类的三要素和名词提炼法 004-面向对象-04-内置的dir函数查询对象的方法列表 005-定义简单类-01-基本语法 006-定义简单类-02-案例演练. 007-定义简单类-03-接收对象的变量同样是对对象的引用. ...
主要解决在ajax中中文参数传递过程中,服务器接收到中文乱码的问题
C#接收Json格式数据,中文出现乱码解决方法
下面小编就为大家分享一篇解决SpringMVC Controller 接收页面传递的中文参数出现乱码的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
NULL 博文链接:https://cdxs2.iteye.com/blog/1925245
1.传递参数: 代码如下: var pmt = ‘sensor=’+ encodeURI(encodeURI(sensor))+’&device=’+encodeURI(encodeURI(device))+’&instrument=’;...接收和解析参数 代码如下: //获取URL参数 function GetRequest()
C++Http上传文件到web服务器,解决中文参数乱码问题,微软提供的Chttpconnect 类在请求http头参数是中文时出现乱码
仿真结果图:前两个图分别为在不同信噪比下,两个接收信道的归一下相对误差。 图三为解映射后的误码率随信噪比变化图,和经过解交织、解卷积进行向前纠错后的整体误码率。 辅助仿真程序:OFDM_SIM.m为多载波的...
PHP 伪静态 网址参数中的【中文正则表达式】问题.rar