`

003 - 接收参数_中文问题

阅读更多

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文件中查到

 

 

分享到:
评论

相关推荐

    u-blox7-V14_ReceiverDescriptionProtocolSpec_(GPS.G7-SW-12001)_Public.pdf

    ### u-blox7-V14 接收器描述与协议规范知识点详解 #### 一、概述 本手册针对 u-blox7 高性能定位模块进行了详细介绍,内容涵盖固件特性、规格配置以及协议规范等重要方面。u-blox7 是一款高性能的 GPS 定位模块,...

    2c-esp8266_non_os_sdk_api_reference_cn.zip

    开发者可以通过API创建套接字,进行数据的发送和接收。 4. **事件驱动编程**:非操作系统SDK通常采用事件驱动模型,通过注册事件回调函数来处理Wi-Fi连接状态变化、TCP/IP事件等。 5. **内存管理**:由于缺乏操作...

    S-TUNE_Ver-3_1_3_0--simplified_Chinesed.rar

    本文将深入解析S-TUNE Ver-3_1_3_0的简体中文版,帮助用户更好地理解和运用这一强大的工具。 1. **伺服系统基础**: 伺服系统是控制系统的一部分,它通过反馈机制来确保执行机构能够按照预期进行精确运动。伺服...

    CJ1W-NC113_213_413_133_233_433_位置控制 定位模块使用手册

    这些模块能够接收来自PLC的信号,通过高速脉冲输出来驱动伺服电机或其他运动执行机构,实现精准的定位。NC113适用于单轴定位,而213、413则可以支持双轴和四轴的同步控制,133、233和433可能是不同功率或功能增强的...

    u-center_UserGuide_(UBX-13005250)中文版.pdf

    - 将参数保存到接收器非易失性存储器。 - 录制和播放日志文件。 - 进行灵敏度测试。 - 读写配置文件和设置GNSS配置。 - 改变时期检测方法。 ### 故障排除 在遇到问题时,用户指南也会提供故障排除的指导。此外,还...

    ueditor_release-ueditor1_4_3_1-utf8-jsp.zip

    这通常包括引入JavaScript和CSS文件,配置服务器端的接收和返回接口,以及设置编辑器的初始参数。对于JSP环境,还需要确保服务器支持UTF-8编码,并在相应的位置设置字符编码。 6. **扩展与优化** 百度UEditor提供...

    ISO 11898-2-2016_CAN_11898-2_11898_ISO11898-2-2016_iso11898

    它包括接收滤波器、驱动器和接收器等子模块,确保数据在高速环境下正确、无误地传输。高速CAN可以达到高达1 Mbps的传输速率,适用于需要快速响应的实时应用。 **CAN总线协议** 在数据链路层,CAN协议采用一种称为...

    1例程--LED_08_32_64_SHT_V3_LED点阵屏例程_STM32汉字显示_STM32led点阵_

    STM32控制LED点阵屏显示例程是一个典型的嵌入式系统应用,涉及到的主要知识点包括STM32微控制器、LED点阵屏的工作原理、汉字显示技术以及编程语言和开发环境的使用。 首先,STM32是一款基于ARM Cortex-M内核的微...

    uCOS-II 常用函数参考手册.rar_uCOS-II API手册_uCOS-II中文手册_uCOS-II函数_ucos_uc

    它需要提供任务的入口地址、栈空间、优先级等参数。 - `OSTaskDel()`:删除已存在的任务,释放相关的资源,确保系统的高效运行。 - `OSTaskStat()`:获取任务的状态信息,如任务ID、优先级、堆栈使用情况等,有助...

    euromap63-manual_zh-cn_euromap63_

    4. **功能定义**:欧标63定义了一系列预设的功能,如启动/停止注塑机、传输产品参数、接收运行状态反馈等,这些功能使得自动化设备可以智能地与注塑机交互。 5. **实施指南**:文档可能包含实施欧标63的步骤和最佳...

    RDM协议E1-20_2010中文版

    ### RDM协议E1-20_2010中文版关键知识点解析 #### 一、RDM协议简介 RDM(Remote Device Management)协议是一种用于远程管理DMX512网络上的设备的标准协议。该协议由PLASA(Professional Lighting and Sound ...

    wordcloud-1.8.1-cp37-cp37m-win_amd64.zip

    在这个例子中,`font_path`参数用于指定中文字体文件(如'Arial Unicode MS'或'simhei.ttf'),以确保能够正确显示中文字符。`background_color`用于设置背景颜色。`generate`方法接收文本,生成词云。最后,使用...

    DMM-USB_labviewUSB_labviewdmm_USB数据接收_

    标题中的"DMM-USB_labviewUSB_labviewdmm_USB数据接收_"表明了我们要探讨的主题是通过LabVIEW(Laboratory Virtual Instrument Engineering Workbench)这个图形化编程环境,利用USB接口进行数据通信,特别是针对...

    凯利KD-C1_SETUP_20160325(1).rar

    写频过程中,用户需要了解几个关键参数: 1. **频率**:这是对讲机收发信号的基础,通常以MHz(兆赫兹)为单位。用户可以根据当地的无线电频谱规划选择合适的频率,避免干扰其他合法无线电通信。 2. **亚音/CTCSS*...

    1139-Ed.3-The-Technical-Specification-of-VDES_June-2019.pdf

    - 文件中还包含了有关传输准确性的详细技术参数,这些对于确保VDES通信质量至关重要。 - VDES系统中使用的特定频段,依据国际电信联盟(ITU)的R附录进行了说明。 - VDES的技术规格在海事通信中提供了重要的功能,如...

    射频识别 ISO-IEC_CD-18000-6C中文版详细简析

    - **读写器**:需支持标准定义的所有命令,并能在指定频率下正确发送和接收信号。 - **标签**:必须能识别并响应读写器发出的标准命令集。 #### 2.3 命令结构和延展性 标准定义了强制性、可选性、专有和自定义命令...

    EVX-531_534_539_CE142_Setup_CHN_1_18.rar

    《EVX-531_534_539_CE142_Setup_CHN_1_18.rar》是一款专为威泰克斯( Vertex Standard)系列对讲机设计的中文写频软件,版本号为V1.18。这款软件主要服务于EVX-531、EVX-534和EVX-539型号的对讲机,旨在帮助用户更加...

    icom ic-f1020_f2020车台对讲机使用说明书+写频软件CS_F1000

    2. 技术规格:手册提供了对讲机的技术参数,如发射功率、接收灵敏度、频率范围等,有助于用户理解设备性能。 3. 故障排除:遇到问题时,用户可以参考服务手册中的故障排除指南,按照步骤逐步解决。 总结,艾可慕IC...

Global site tag (gtag.js) - Google Analytics