`
Abby_success
  • 浏览: 16975 次
  • 性别: Icon_minigender_2
  • 来自: 重庆
社区版块
存档分类
最新评论

richlist:Shuttle的应用

阅读更多

最近在JSF的开发中使用了richfaces插件,使用了其便捷的标签插件:

其中richlist:Shuttle就是一个比较好用的标签,以下讲其标签的具体应用的测试实例:

首先在backbean中需要做以下配置:

 <managed-bean>
      <managed-bean-name>testShuffle</managed-bean-name>
     <managed-bean-class>demo.controller.TestShuffle</managed-bean-class>
     <managed-bean-scope>session</managed-bean-scope>
  </managed-bean>
<converter>
       <converter-id>Shuttleconverter</converter-id>
       <converter-class>demo.bean.Converter</converter-class>
</converter>

TestShuffle是用来实现生成List的action:

public class TestShuffle {
 
 private List<ShuffleItem> sourceList = new ArrayList<ShuffleItem>();
 private List<ShuffleItem> targetList = new ArrayList<ShuffleItem>();
 ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
 IUserDAO userdao = (UserDAO)context.getBean("userDao");
 public List<ShuffleItem> getSourceList() {
  return sourceList;
 }
 public void setSourceList(List<ShuffleItem> sourceList) {
  this.sourceList = sourceList;
 }
 public List<ShuffleItem> getTargetList() {
  return targetList;
 }
 public void setTargetList(List<ShuffleItem> targetList) {
  this.targetList = targetList;
 }
 
public String getRichList(){
  
   List list = userdao.getNames();
   for(int i = 0;i < list.size();i++){
     HashMap paramMap = (HashMap)list.get(i);
     ShuffleItem item = new ShuffleItem();
    item.setName(paramMap.get("NAME").toString());
    sourceList.add(item);
  }
  return "richList";//转向testRichfacesShuffle.xhtml
 }
/*

*此方法用于测试TargetList取到的值

*/    
  public String getTargetValue(){
     
      System.out.println("targetList.size()="+this.getTargetList().size());
      System.out.println("the value in targetList is:");
      for(int i=0;i < this.getTargetList().size();i++){
        System.out.println(targetList.get(i).getName());
     }
        return null;
 }

展示List的界面testRichfacesShuffle.xhtml:

 <?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:rich="http://richfaces.org/rich"
      xmlns:a4j="http://richfaces.org/a4j"
      xmlns:t="http://myfaces.apache.org/tomahawk"
      xmlns:c="http://java.sun.com/jstl/core">
      <!--引用统一的模板-->
   <ui:composition template="pages/templates/Demotemplate.xhtml">
      <!--header区域-->
   <ui:define name="pageHeader">测试rich:listShuttle的取值</ui:define>
   <!--body区域-->
   <ui:define name="body">
  

       <h:form> 
     <h:messages>
      <f:facet name="errorMessage"></f:facet>
     </h:messages>
     <rich:listShuttle var="items"
       sourceValue="#{testShuffle.sourceList}"
       targetValue="#{testShuffle.targetList}"
       targetRequired="true"
       converter="Shuttleconverter"
       sourceCaptionLabel="备选字段" targetCaptionLabel="已选字段"
       listsHeight="200"
                             sourceListWidth="130"
                             targetListWidth="130" >
       <rich:column width="50">
                    <h:outputText value="#{items.name}"></h:outputText>
                </rich:column>
     </rich:listShuttle>
     <h:commandButton action="#{testShuffle.getTargetValue}" value="下一步"  />
      </h:form>
   </ui:define>
   </ui:composition>
</html> 

注意:此处的 converter需要自己实现;以下是实现的代码:

首先:定义Converter.java类:

public class Converter implements javax.faces.convert.Converter{

 public Object getAsObject(FacesContext context, UIComponent component,
   String value) {
  return new ShuffleItem(value);
 }

 public String getAsString(FacesContext context, UIComponent component,
   Object value) {

  ShuffleItem optionItem = (ShuffleItem) value;
  return optionItem.getName();
 }

}

其次是ShuffleItem .java:

public class ShuffleItem {
 
private String name;


public ShuffleItem(){

}
public ShuffleItem(String name) {
 super();
 this.name = name;
}


public String getName() {
 return name;
}

public void setName(String name) {
 this.name = name;
}
@Override
public int hashCode() {
 final int prime = 31;
 int result = 1;
 result = prime * result + ((name == null) ? 0 : name.hashCode());
 return result;
}
@Override
public boolean equals(Object obj) {
 if (this == obj)
  return true;
 if (obj == null)
  return false;
 if (getClass() != obj.getClass())
  return false;
 ShuffleItem other = (ShuffleItem) obj;
 if (name == null) {
  if (other.name != null)
   return false;
 } else if (!name.equals(other.name))
  return false;
 return true;
}


}
必须要实现转换器(converter)才能在列表间移动数据的时候分别取得源列表和目标列表的值!
 

 

 

分享到:
评论

相关推荐

    Shuttle ESB 入门实例

    本实例,使用ShuttleESB完成...下载实例后,需要配置QuickStart.Shuttle.Server项目的启动类型为:Shuttle.Core.Host项目的exe程序 步骤就是:右击QuickStart.Shuttle.Server——调试——启动操作——选择对应的路径。

    跨平台翻译系统 Shuttle.zip

    Ruby以其简洁的语法和丰富的库而闻名,适合快速开发这样的复杂应用。 8. **开源特性**:Shuttle是开源的,意味着任何有兴趣的人都可以查看其源代码,学习其设计思路,甚至贡献自己的改进和修复。这种开放性有助于...

    shuttle-esb:Shuttle.Esb 免费开源 .NET 企业服务总线的文档

    1. **快速入门**:介绍如何安装和配置Shuttle.Esb,以及创建第一个消息传递应用程序的步骤。 2. **API参考**:详细列出Shuttle.Esb的类库、接口和方法,供开发者查阅和调用。 3. **教程与示例**:提供实际应用场景的...

    shuttle:Shuttle是用于测试并发Rust代码的库

    Shuttle是用于测试并发Rust代码的库。 它是许多随机并发测试技术的实现,包括。 入门 考虑以下简单的并发代码: use std :: sync :: {Arc, Mutex}; use std :: thread; let lock = Arc :: new (Mutex :: new ( 0u...

    shuttle-cli:Shuttle SSH管理器的命令行客户端

    它会读取您的默认shuttle.json文件,并为您提供一个CLI界面。 实际上,它也不需要Shuttle客户端。 您所需要的只是homefolder中的有效.shuttle.json文件。 $ shuttle +--------+----------------------------------...

    shuttle-cloud:Shuttle基于Spring Cloud的分布式实现

    项目介绍shuttle-cloud是项目基于Spring Cloud的分布式实现,采用了Spring Cloud Eureka , Spring Cloud Config , Spring Boot Admin , Spring Cloud Gateway , Spring Cloud OpenFeign , Docker等核心技术,...

    shuttle-core:Shuttle.Core 横切库集的文档库

    通过深入学习和理解Shuttle.Core的文档库,开发者可以更好地利用这个强大的工具集,提升软件开发效率,减少代码重复,并确保应用具有良好的可扩展性和可维护性。在实际项目中,正确使用Shuttle.Core可以大大提高代码...

    Shuttle:Shuttle-用于将内容移至容器运行平台的工具图像

    穿梭 用于将内容移至容器运行平台的工具映像 叉; 将内容添加到./payload/ ; 构建,标记和发布图像; 部署映像; 使用内容。 这似乎有点鲁伯·戈德堡。 当安全性要求并且允许这种方法时,我会使用它。...

    Shuttle.Esb.Module.CorruptTransportMessage:Shuttle.Esb的CorruptTransportMessage模块将任何无法反序列化的传输消息写入磁盘

    Shuttle.Esb.Module.CorruptTransportMessage Shuttle.Esb的CorruptTransportMessage模块会将未能反序列化的所有传输消息写入磁盘。 它将通过ServiceBusEvents.TransportMessageDeserializationException事件进行...

    Mac 第三方连接Linux服务器——Shuttle

    Shuttle是一款轻量级的应用程序,设计目的是简化开发者和系统管理员在Mac上访问远程Linux服务器的过程。它提供了图形化的用户界面,使得SSH连接变得更加直观和高效。 描述中的链接指向了CSDN博客上的一篇文章,虽然...

    BusShuttleDriverApp:Shuttle Bust Log Collection System的源代码-Source code collection

    前端-驱动程序 let me know if you need the usernames and passwords 当前版本: ... 如果您更改任何源文件,该应用程序将自动重新加载。 构建和部署生产服务器 在项目文件夹中运行ng build --pro

    bu-shuttle:BU Shuttle的替代Web应用程序! 目前处于早期开发中

    "bu-shuttle" 是一个基于Web的替代应用,旨在替换原有的BU Shuttle服务,主要用于波士顿大学的学生、教职员工以及其他使用者跟踪和规划校园内的穿梭巴士路线。此项目目前仍处于早期开发阶段,这意味着它可能包含一些...

    bst-bmi270-sf000 数据手册1

    * Shuttle板允许通过简单的插座简单地访问传感器引脚,并可以直接插入Bosch Sensortec的应用板3.0。 知识点2:Shuttle板识别 * Shuttle板的识别信息包括Shuttle ID(0x1b8)和Shuttle板标识符(BST00819)。 * 该...

    Shuttle Pro2控制手轮驱动

    "将配置文件应用到当前的延时文件的EXE上"这一描述可能是指Shuttle Pro2驱动支持自定义快捷键映射和预设配置。用户可以创建或下载特定应用程序的配置文件,这些文件包含了各个按键和旋钮对应的功能映射。通过将这些...

    swift-Shuttle一个用于macOS的简单SSH快捷菜单

    **Swift-Shuttle:macOS上的高效SSH连接工具** Swift-Shuttle 是一款专为macOS设计的SSH快捷菜单应用,旨在简化系统中频繁的SSH连接操作。通过使用Swift语言进行开发,它提供了用户友好的界面和高效的性能,使得IT...

    高中英语单词天天记shuttle素材

    今天我们要探讨的是单词“shuttle”,它是一个多义词,既有动词含义也有名词含义,广泛应用于各种语境中。 一、动词“shuttle” 1. 意义:穿梭般来回移动 2. 读音:['ʃʌtl] 3. 不及物动词用法:主语 + shuttle + ...

    ShuttleSSHshortcut.zip

    标题"ShuttleSSHshortcut.zip"表明这是一个与SSH(Secure Shell)相关的软件,名为Shuttle,可能是为了方便用户快速访问SSH服务器而设计的。它以压缩文件的形式提供,暗示里面包含了该软件的源代码或者安装包。 ...

    EasternPioneerBus:这是EasternPioneer Shuttle巴士服务的Android应用程序

    "EasternPioneer Bus"是一款专为东方先锋Shuttle巴士服务打造的Android应用,它为乘客提供了便捷、高效的出行体验。本文将对这款应用进行深入剖析,探讨其背后的Java技术实现。 首先,让我们了解一下"东方先锋巴士...

    shuttle:简约的部署工具

    Shuttle是用于小型应用程序和单服务器部署的简约应用程序部署工具。 配置存储为YAML编码文件,无需使用ruby代码。 在与目标服务器的SSH连接上执行操作。 安装 从Rubygems安装: gem install shuttle-deploy 或手动...

    Android-Shuttle.zip

    “Shuttle音乐播放器”可能是一款设计精良、功能丰富的音乐应用,旨在为用户提供高质量的音频体验。它可能包含以下关键组件和特性: 1. 用户界面:一个直观且易于使用的界面,允许用户浏览音乐库,创建播放列表,...

Global site tag (gtag.js) - Google Analytics