JAVA软件工程师1、  精通JAVA基础,喜欢研究JAVA中的深层次问题,经常为了攻克一个问题茶不思饭不想。掌握JAVA的常用命令。理解JAVA中的继承,封装,多态(最基本要求。最好是可以在实际应用中使用)。熟练使用JAVA的IO,多线程,了解socket编程(这个只需要基本的应用就可以了,不必非得大师级的)。
2、  精通JSP,servlet, filter的使用及配置(必须精通,工作中不能在这上浪费时间)。
3、  熟悉struts应用。深入了解MVC模式。
4、  熟练Hibernate的使用。(熟练并不是指应用HibernateSynchronizer这样的工具,而是要会手工写的哦)。
5、  熟练SQL,可以熟练的运用SQL操作DB(这个没什么可说的,注意看SQL,不是HQL)。
6、  熟练使用tomcat配置、部署(这个你一定会吧)。
7、  熟悉spring者优先。
qq  283765999
msn [email protected]
地点: 北京中关村太平洋附近

解决方案 »

  1.   

    XMLEncoder这个工具可以生成如下格式的xml文件
    可能并不是很符合你的要求
    可以参考一下:<?xml version="1.0" encoding="UTF-8"?> 
    <java version="1.5.0_06" class="java.beans.XMLDecoder"> 
     <object class="com.demo.Foo"> 
      <void property="childs"> 
       <object class="java.util.ArrayList"> 
        <void method="add"> 
         <string>first</string> 
        </void> 
        <void method="add"> 
         <string>second</string> 
        </void> 
       </object> 
      </void> 
      <void property="foo"> 
       <string>bar</string> 
      </void> 
     </object> 
    </java> 集合对象也可以生成:<?xml version="1.0" encoding="UTF-8"?> 
    <java version="1.5.0_06" class="java.beans.XMLDecoder"> 
     <object class="java.util.ArrayList"> 
      <void method="add"> 
       <string>first</string> 
      </void> 
      <void method="add"> 
       <string>second</string> 
      </void> 
     </object> 
    </java> 
    使用也非常简单:
    XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream(
    new FileOutputStream(filename)));
    encoder.writeObject(f);
    encoder.close();
      

  2.   

    http://java.sun.com/webservices/jaxp/dist/1.1/docs/tutorial/xslt/3_generate.html
      

  3.   

    其实我要的很简单,就是将MAP对象转换为XML格式的字符串,当然Map对象如果里面包含着集合对象也要正确转换为XML格式,问题的由来是因为Ajax ,以前我们通过将Map对象承载数据传递给客户端,但是Ajax是通过XML格式的数据,所以……
      

  4.   

    好像apache有一个这样的工具,可以实现OtoXML,XMLtoO的。
      

  5.   

    按照楼主的要求,光一个List 要如何输出?
      

  6.   

    通过调用XMLEncoder类的writeObject方法来实现,例如:
    串行化一个JButton的例子:
    import java.beans.XMLEncoder;
    import java.beans.XMLDecoder;
    import javax.swing.*;
    import java.io.FileOutputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    public class SerializeJButton{       public static void main(String args[])           
           {              
                  new SerializeJButton();
           }
           
           public SerializeJButton(){
                   
                try {
                
                  System.out.println("Running");
                  FileOutputStream fos = new FileOutputStream("button.xml");
                  XMLEncoder xEnc = new XMLEncoder(fos);
                  
                  xEnc.writeObject(new JButton("Click Me"));
                  
                  fos.close();
                  }catch (Exception ex){
                     System.out.println(ex);
                  }
                  System.out.println("Ending");
                  System.exit(0);
           
           }
    }串行化后的结果:
    <?xml version="1.0" encoding="UTF-8"?> 
    <java version="1.3.0" class="java.beans.XMLDecoder"> 
      <object class="javax.swing.JPanel"> 
        <void method="add"> 
          <object class="javax.swing.JButton"> 
            <void property="bounds"> 
              <object class="java.awt.Rectangle"> 
                <int>82</int> 
                <int>47</int> 
                <int>111</int> 
                <int>34</int> 
              </object> 
            </void> 
            <void property="label"> 
              <string>Click Me</string> 
            </void> 
          </object> 
        </void> 
        <void property="preferredSize"> 
          <object class="java.awt.Dimension"> 
            <int>200</int> 
            <int>200</int> 
          </object> 
        </void> 
        <void property="layout"> 
          <null/> 
        </void> 
      </object> 
    </java>
      

  7.   

    自已写一个好了,应该不是很难的,
    但不知道楼主意思是不是:
    比如有
    Map map=new HashMap();
    map.put("username","test");
    map.put("sex","1");
    List list = new ArrayList();
    list.add("1");
    list.add("2");
    list.add("3");
    map.put("collection",list);
    转换成xml
    <User>
    <username>test</username>
    <sex>1</sex>
    <collection>
    1 2 3
    </collection>
    </User>
    里边的1  2 3 要用什么样的格式?
      

  8.   

    如 list.add("a");
       list.add("b");
    <list>
      <a>a</a>
      <b>b</b>
    <list>list.add(userMap);
    list.add(otherObject);
    <list>
       <user>
          <name>test</name>
          ...
       <user>
       <otherObject>
        ....
       </otherObject>
    </list>不过我想可能没有现成的工具可用,只能自己定个规则约束,可能不具备通用性~~
      

  9.   

    不知这样行不?如果你的MAP中的对象是特定的话,可以先转为XSteadm就很好了。这样解析的不太好。import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.util.*;
    import org.jdom.*;
    import org.jdom.output.*;
    import org.jdom.input.*;
    public class XMLTest {
    private static Document doc;
    private static Element root;
    XMLTest(){
    root = new Element("OK");
    doc= new Document(root); 
    }
    void fromMap(Object o){
    fromMap(o,root);
    }

    void fromMap(Object o,Element ele){
    Element newEle = null;
    if( o instanceof List  ){
    for(int i=0;i<((List)o).size();i++){
    newEle = new Element("List");
    ele.addContent(newEle);
    fromMap(((List)o).get(i),newEle);
    }
    }else if( o instanceof Map  ){
    Map map = (Map)o;
    Object[] obj = map.keySet().toArray();
    newEle = new Element("User");
    ele.addContent(newEle);
    for(int i = 0;i<obj.length;i++){
    Element sEle = new Element(obj[i].toString());
    newEle.addContent(sEle);
    fromMap(map.get(obj[i]),sEle)  ;
    }
    }else{
    ele.addContent(o.toString());
    }
    }

    void createXML() throws Exception{
          Format format = Format.getPrettyFormat();
          format.setIndent("  ");
          format.setEncoding("utf-8");
          XMLOutputter outp = new XMLOutputter(format);
          FileOutputStream fo = new FileOutputStream("text.xml");
          outp.output(doc, fo);
          fo.close();

    }
    public static void main(String[] args) throws Exception{
    Map map = new HashMap();
    map.put("age",new Integer(5));
    map.put("userName","007");
    List list = new ArrayList();
    list.add("ssd");
    list.add("kkk");
    map.put("sss",list);

    XMLTest xt = new XMLTest();
    xt.fromMap(map);
    xt.createXML();
    }
    }
      

  10.   

    //这是我根据楼主的需求写的
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import org.w3c.dom.Text;
    public class Test {
     public static void main(String[] args) {
      try {
       DocumentBuilder builder = DocumentBuilderFactory.newInstance()
         .newDocumentBuilder();
       Document document = builder.newDocument();
       Element root = document.createElement("Object");
       root.setNodeValue("");
       Map map = new HashMap();
       map.put("name", "JiangWf");
       map.put("age", "26");
       List books = new ArrayList(4);
       books.add("english_book");
       books.add("computer_book");
       books.add("chinese_book");
       List books2 = new ArrayList(2);
       books2.add("java_books");
       books2.add("VB_books");
       books.add(books2);
       map.put("books", books);
       Map m = new HashMap();
       m.put("map1",books2);
       m.put("map2","hello");
       map.put("map",m);
       document = new Test().mapDataToXml(map, root, document);
      } catch (Exception e) {
       e.printStackTrace();
      }
     }
     public Document mapDataToXml(Map datas, Element root, Document doc)
       throws Exception {
      if (datas == null || datas.isEmpty() || root == null) {
       return null;
      }
      Set keyset = datas.keySet();
      Iterator iterator = keyset.iterator();
      Object key = null;
      Object value = null;
      while (iterator.hasNext()) {
       key = iterator.next();
       value = datas.get(key);
       Element element = doc.createElement((String) key);
       root.appendChild(element);
       if (value instanceof List) {
        doc = listDatasToXml((List) value, element, doc);
       } else if (value instanceof Map) {
        doc = mapDataToXml((Map) value, element, doc);
       } else if (value instanceof String) {
        element.appendChild(doc.createTextNode((String) value));
       } else {
        System.out.println("Error: error type");
        continue;
       }
      }
      return doc;
     }
     private Document listDatasToXml(List datas, Node parent, Document doc)
       throws Exception {
      if (datas == null || datas.isEmpty() || parent == null) {
       return null;
      }
      Object item = null;
      for (int i = 0; i < datas.size(); i++) {
       item = datas.get(i);
       if (item instanceof String) {
        Element element = doc.createElement((String) item);
        element.appendChild(doc.createTextNode((String) item));
        parent.appendChild(element);
       } else if (item instanceof List) {
        Element element = doc.createElement("list");
        element.setNodeValue("");
        parent.appendChild(element);
        doc = listDatasToXml((List) item, element, doc);
       } else if (item instanceof Map) {
        Element element = doc.createElement("map");
        element.setNodeValue("");
        parent.appendChild(element);
        doc = mapDataToXml((Map) item, element, doc);
       } else {
        System.out.println("Error: unlegal type.");
        continue;
       }
      }
      return doc;
     }
    }
    //下面是程序测试结果
     <Object>
     <age>26</age>
    <books>
     <english_book>english_book</english_book>
    <computer_book>computer_book</computer_book>
    <chinese_book>chinese_book</chinese_book>
    <list>
    <java_books>java_books</java_books>
     <VB_books>VB_books</VB_books>
    </list>
    </books>
    <map>
    <map1>
    <java_books>java_books</java_books>
    <VB_books>VB_books</VB_books>
    </map1>
    <map2>hello</map2>
     </map>
    <name>JiangWf</name>
    </Object>
      

  11.   

    看的头都痛了我就只会用dom读xml文件
      

  12.   

    我的程序还很不完善,不具备很强的通用性,只能满足基本的需求,这个程序要求Map中的数据类型只能是:1)List;2)Map;3)String,其他的则无法处理。这个程序的基本想法是用递归的思想不断的构建document,直到Map中的所有数据遍历完毕。最终返回构建好的document对象。
      

  13.   

    这是一个不错的问题,各位回贴也很积极,提交公告也可以看看XMLBeans的实现XMLBeans是一个XML-Java绑定工具,利用它可以很方便地解析XML文档。http://xmlbeans.apache.org/
      

  14.   

    何必这么麻烦,直接可以用XStream帮你做,很简单的实现。http://xstream.codehaus.org/http://xstream.codehaus.org/tutorial.html  《==很容易就可以实现了。
      

  15.   

    我说了,xstream实现的并不符合我的要求,后来自己写了一个,只是针对Map/Collection对象,
    对于JavaBean其实很多工具都可以实现,这不是问题:
    XMLHelper.Java
    import java.util.Collection;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    /**
     * 
     * <pre>
     * project: 
     * Title:XMLHelper
     * Description:将对象(Map,Collection)转换为Ajax XML输出帮助工具类
     * </pre>
     * @author wzrlover
     * @since 2006-4-1
     */
    public class XMLHelper {
    private static XMLHelper helper=new XMLHelper();
    private XMLHelper(){

    }
    public static XMLHelper getInstance(){
    return helper;
    }

      public String toXML(Object _obj){
      StringBuffer xml = new StringBuffer().append("<?xml version=\"1.0\"");
          xml.append(" encoding=\"");
          xml.append("utf-8");
          xml.append("\"");
      xml.append(" ?>\n");
      xml.append("<ajax-response>\n");
      xml.append("<response>\n");
      xml.append(this.toXML(_obj,0));
      xml.append("</response>\n");
      xml.append("</ajax-response>");
      return xml.toString();
      }
    private String toXML(Object _obj, int i) {
    String str=null;
       if (_obj instanceof Map) {
    str = toXMLMap((Map)_obj, i);
       } else if (_obj instanceof Collection) {
    str = toXMLCollection((Collection)_obj, i);
       }else{
       str = toXMLOtherObject( _obj, i);
       }
       return str;
    }

    private String toXMLCollection(Collection _list, int i) {
    StringBuffer sb = new StringBuffer();
    if(_list!=null) {
    sb.append(getSpace(i)).append("<item>").append("\n");
    for (Iterator it = _list.iterator(); it.hasNext(); ) {
      i++;
      sb.append(toXML(it.next(), i));
      i--;
    }
    sb.append(this.getSpace(i)).append("</item>").append("\n");
    }
    return sb.toString();
    } private String toXMLMap(Map _map, int i) {
    StringBuffer sb = new StringBuffer();
    if(_map!=null) {
    Set keySet = _map.keySet();
    for (Iterator it = keySet.iterator(); it.hasNext(); ) {
    Object key = it.next();
    Object value=_map.get(key);
    i++;
    sb.append(getSpace(i)).append("<item id='").append(key+"'>").append("\n");
    //如果Map里的value对象是Collection或Map,则不添加<name/>
    if(!(value instanceof Map) &&!( value instanceof Collection)){
    sb.append(getSpace(i) + "<name>" + key).append("</name>").append("\n");
    }
       sb.append(toXML(_map.get(key), i));
       sb.append(getSpace(i)).append("</item>").append("\n");
       i--;
      
    }
    }
    return sb.toString();
    } private String toXMLOtherObject(Object _obj, int i) {
    StringBuffer sb = new StringBuffer();
    sb.append(this.getSpace(i));
    if(_obj!=null) {
    sb.append("<value>").append(_obj.toString()).append("</value>").append("\n");
    }
    return sb.toString();
    }
    private String getSpace(int _i) {
    StringBuffer sb = new StringBuffer();
    for (int j = 0; j < _i; j++) {
      sb.append("  ");
    }
    return sb.toString();
       }}
      

  16.   

    以上主要是以
    <item>
          <name></name>
          <value></value>
    </item>
    这种格式,实现Map包含了Collection或Collection包含了Map等结构的XML输出
      

  17.   

    castor 数据邦定可以实现,你要定义自己的schema。