zk的checkbox

<div sclass="ine_div rdg">
  <label sclass="itm_lab" value=" 權限  :" />
  <checkbox id="l1" label="讀" checked="@bind(vm.orderContent.perm.canRead)"/>
  <checkbox id="l2" label="寫"  checked="@bind(vm.orderContent.perm.canWrite)"/>
  <checkbox id="l3" label="執行" checked="@bind(vm.orderContent.perm.canExecute)"/>
   </div>
 --------------------------------------------

public static class FilePermission{
  public final static int READ = 4;
  public final static int WRITE = 2;
  public final static int EXECUTE = 1;
  private int value = 0;
  private int mask = 7;
  public FilePermission(){
   this(0);
  }
  public FilePermission(int value){
   this.value = value;
  }
  public int getValue(){
   return value;
  }
  public void setValue(int value){
   this.value = value;
  }
  @JsonIgnore
  public boolean getCanRead(){
   return (this.value & READ) > 0;
  }
  public void setCanRead(boolean read){
   this.value = mask & ~READ & value | (read ? READ : 0 );
  }
  @JsonIgnore
  public boolean getCanWrite(){
   return (this.value & WRITE) > 0;
  }
  public void setCanWrite(boolean write){
   this.value = mask & ~WRITE & value | (write ? WRITE : 0 );
  }
  @JsonIgnore
  public boolean getCanExecute(){
   return (this.value & EXECUTE) > 0;
  }
  public void setCanExecute(boolean execute){
   this.value = mask & ~EXECUTE & value | (execute ? EXECUTE : 0 );
  }
 }

 private List<Host> items = new ArrayList<Host>();
 private String fileName;
 private String token;
 private String path;
 private String group;
 private FilePermission perm = new FileCopyOrderContent.FilePermission(0);
 public List<Host> getItems() {
  return items;
 }
 public void setItems(List<Host> items) {
  this.items = items;
 }
 public String getPath() {
  return path;
 }
 public void setPath(String path) {
  this.path = path;
 }
 public String getFileName() {
  return fileName;
 }
 public void setFileName(String fileName) {
  this.fileName = fileName;
 }
 public String getToken() {
  return token;
 }
 public void setToken(String token) {
  this.token = token;
 }
 
 
 public String getGroup() {
  return group;
 }
 public void setGroup(String group) {
  this.group = group;
 }
 public FilePermission getPerm() {
  return perm;
 }
 public void setPerm(FilePermission perm) {
  this.perm = perm;
 }
 @Override
 public String getUrl() {
  // TODO Auto-generated method stub
  return UrlUtils.FILE_COPY;
 }
 java的位運算參考博客:並對作者表示感謝

 http://www.cnblogs.com/zhengtao/articles/1916751.html

java的序列化反序列化

我們都知道,當我們new一個對象的時候,Java就會在內存中創建一個相應的對象供我們後續使用。如果我們把這個Java程序關掉的話,那麼這個對象也就隨着我們程序的關閉而消失,如何才能在這種情況下繼續保存這個對象呢?這就是Java序列化要做的事情。簡單地說,Java對象列化就是要把內存中的Java對象保存下來(持久化),以便可以在網絡上傳輸或今後繼續使用這個對象中的數據。 
  那麼對象序列化到底做了哪些事呢?其實很簡單,一個對象對於我們來說的意義其實就是對象裏保存的那些數據,序列化就是把這些數據轉換成二進制表示的對象流,你可以把它通過網絡傳輸到遠程,當然,也可以把這些信息保存在本地的文件裏。下面給出一個最簡單的Java的序列化與反序列化的例子,看懂這個例子,相信你應該也能跟我一樣,大概理解這是怎麼一回事了。 
首先是一個Peraon類: 
Person.java 

Java代碼:
package com.lanber.serial;

import java.io.Serializable;

public class Person implements Serializable {
private String name;
private int age;
private String sex;
private String nationality;

public Person(String _name, int _age, String _sex, String _nationality) {
this.name = _name;
this.age = _age;
this.sex = _sex;
this.nationality = _nationality;
}

public String toString() {
return "Name:" + name + "\nAge:" + age + "\nSex:" + sex
+ "\nNationality:" + nationality + "\n\n";
}
}

 而後我們要實例化一個Person對象,把我們實例化出來的這個對象序列化,並把序列化後的對象流保存到文件中去: 
WritePerson.java 
package com.lanber.serial;

import java.io.*;

public class WritePerson {

public static void main(String[] args) {
try {
ObjectOutputStream oos = new ObjectOutputStream(
new FileOutputStream("Person.tmp"));
Person obj = new Person("Tony", 25, "Female", "han");
System.out.println("將Person對象寫入到文件Person.tmp中...");
oos.writeObject(obj);
oos.close();
System.out.println("完成!");
} catch (Exception e) {
System.out.println(e);
}

}
}

這樣,我們就把序列化後的二進制對象流保存到Person.tmp的文件中去了(特別要注意這裏的oos.writeObject()方法,這個方法就是實現把obj對象序列化的方法)。你可以打開生成的這個文件查看,不過我們是看不懂這裏面的信息的,因爲這是二進制數據啊。 
  那我們要怎麼才能看懂這些二進制數據呢?這就要用到我們的反序列化了。反序列化就是要把序列化後的二進制數據反向解析成可以正常使用的Java對象。現在讓我們來把剛纔的那個對象反序列化一下吧: 
ReadPerson.java 

package com.lanber.serial;

import java.io.*;

public class ReadPerson {
public static void main(String[] args) {
Person obj = null;
try {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(
"Person.tmp"));
obj = (Person) ois.readObject();
System.out.println(obj);
ois.close();
} catch (Exception e) {
System.out.println(e);
}
}

}
要注意一下這個語句:
obj = (Person) ois.readObject();
就是通過這個語句把序列化後的對象流反序列化成正常的Java對象的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章