jspgenerator.java
来自「Java Pattern Oriented Framework (Jt) 是为了」· Java 代码 · 共 1,639 行 · 第 1/4 页
JAVA
1,639 行
package Jt.wizard.struts.view;
import java.beans.PropertyDescriptor;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletContext;
import org.jdom.Element;
import org.jdom.Namespace;
import Jt.*;
import Jt.util.BeanProperty;
import Jt.util.JtJavaParser;
import Jt.wizard.struts.DynaMapping;
import Jt.wizard.struts.FormBean;
import Jt.wizard.struts.FormBeanForm;
import Jt.xml.JDOMAdapter;
/**
* Jsp generator (internal JtWizard class).
*/
public class JspGenerator extends JtObject {
public static final String JtCLASS_NAME = JspGenerator.class.getName();
public static final String UPDATE_FORM = "UPDATE_FORM";
public static final String UPDATE_DISPLAY_TAG = "UPDATE_DISPLAY_TAG";
public static final String UPDATE_LINKS = "UPDATE_LINKS";
private JtFactory factory = new JtFactory ();
private JDOMAdapter templateAdapter;
private static final long serialVersionUID = 1L;
private String className;
private String action;
private String path;
private String prefix;
private boolean readonly;
private String key;
private InputStream inputStream;
private List keys;
private String formName;
public JspGenerator() {
}
// Attributes
public void setClassName (String className) {
this.className = className;
}
public String getClassName () {
return (className);
}
public InputStream getInputStream() {
return inputStream;
}
public void setInputStream(InputStream inputStream) {
this.inputStream = inputStream;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public boolean isReadonly() {
return readonly;
}
public void setReadonly(boolean readonly) {
this.readonly = readonly;
}
public String getPrefix() {
return prefix;
}
public void setPrefix(String prefix) {
this.prefix = prefix;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
public List getKeys() {
return keys;
}
public void setKeys(List keys) {
this.keys = keys;
}
public String getFormName() {
return formName;
}
public void setFormName(String formName) {
this.formName = formName;
}
private void addElement (JDOMAdapter adapter, String parentPath, Element element) {
JtMessage msg = new JtMessage (JDOMAdapter.ADD_ELEMENT);
if (adapter == null || element == null)
return;
msg.setMsgContent(element);
msg.setMsgData(parentPath);
adapter.processMessage(msg);
}
// Add a child
/*
private void addChild (Element parent, Element element) {
if (parent == null || element == null)
return;
parent.addContent(element);
}
*/
private String capFirstLetter (String str) {
if (str == null)
return (null);
if (str.equals(""))
return (str);
if (str.length() == 1)
return str.toUpperCase();
return (str.substring(0, 1).toUpperCase() + str.substring(1));
}
private boolean generateInputFields (JDOMAdapter adapter, String className) {
//JtFactory factory = new JtFactory ();
Object obj;
JtMessage msg = new JtMessage (JtFactory.JtGET_ATTRIBUTES);
JtHashTable attributes;
JtIterator iterator;
String attrName;
Element element;
int index = 1;
Namespace nameSpace = Namespace.getNamespace("html", "http://www.jt.org");
PropertyDescriptor prop;
JtMessage msg1 = new JtMessage (JtHashTable.JtGET);
if (className == null || adapter == null)
return (false);
obj = factory.createObject(className);
if (obj == null)
return (false); // check
msg.setMsgContent(obj);
attributes = (JtHashTable) factory.processMessage(msg);
if (attributes == null) {
handleWarning ("DAODefinition.generateProperties: no class attributes for " +
className);
return (true);
}
iterator = (JtIterator) attributes.processMessage (new JtMessage (JtHashTable.JtGET_KEYS));
if (iterator == null)
return (false); //check
msg = new JtMessage (JDOMAdapter.ADD_ELEMENT);
for (;;) {
attrName = (String) iterator.processMessage(new JtMessage (JtIterator.JtNEXT));
if (attrName == null)
break;
msg1.setMsgData (attrName);
prop = (PropertyDescriptor) attributes.processMessage(msg1);
if (!(prop.getPropertyType().isPrimitive() ||
String.class.isAssignableFrom (prop.getPropertyType()) ||
"java.util.Date".equals(prop.getPropertyType().getName())))
continue;
element = new Element ("tr");
msg.setMsgContent(element);
msg.setMsgData ("html:form/table");
adapter.processMessage(msg);
element = new Element ("td");
element.setText(attrName + ":");
msg.setMsgContent(element);
msg.setMsgData ("html:form/table/tr[" + index + "]");
adapter.processMessage(msg);
element = new Element ("td");
addElement (adapter, "html:form/table/tr[" + index + "]", element);
element = new Element ("text");
element.setNamespace(nameSpace);
element.setAttribute("property", attrName);
msg.setMsgContent(element);
msg.setMsgData ("html:form/table/tr[" + index + "]" + "/td[2]");
adapter.processMessage(msg);
index++;
}
element = new Element ("tr");
addElement (adapter, "html:form/table", element);
element = new Element ("td");
addElement (adapter, "html:form/table/tr[" + index + "]", element);
element = new Element ("submit");
addElement (adapter, "html:form/table/tr[" + index + "]" + "/td[1]", element);
element.setNamespace(nameSpace);
return (true);
}
private boolean generateColumns (JDOMAdapter adapter, String formName) {
//private boolean generateColumns (JDOMAdapter adapter, String className) {
//JtFactory factory = new JtFactory ();
Object obj;
JtMessage msg = new JtMessage (JtFactory.JtGET_ATTRIBUTES);
//JtHashTable attributes;
//JtIterator iterator;
String attrName;
Element element;
int index = 0, index1;
Namespace nameSpace = Namespace.getNamespace("display", "http://displaytag.sf.net");
//PropertyDescriptor prop;
JtMessage msg1 = new JtMessage (JtHashTable.JtGET);
//JtMessage msg2;
//List children;
FormBeanForm form;
DynaMapping[] mapping;
int i;
if (formName == null || adapter == null)
return (false);
/*
obj = factory.createObject(className);
if (obj == null) {
// Propagate the exception
if (factory.getObjException() != null)
this.setObjException(factory.getObjException());
return (false); // check
}
msg.setMsgContent(obj);
attributes = (JtHashTable) factory.processMessage(msg);
if (attributes == null) {
handleWarning ("generateInputFields: no class attributes for " +
className);
return (true);
}
iterator = (JtIterator) attributes.processMessage (new JtMessage (JtHashTable.JtGET_KEYS));
if (iterator == null)
return (false); //check
*/
/*
msg2 = new JtMessage (JDOMAdapter.GET_CHILDREN);
msg2.setMsgContent ("jsp:root/html:html/html:form/fieldset");
children = (List) adapter.processMessage(msg2);
if (children == null || (children.size() == 0))
index1 = 1;
else {
index1 = 2;
}
*/
form = retrieveForm (formName);
if (form == null)
return (false);
mapping = form.getMappings();
if (mapping == null)
return (false);
if (keys != null && keys.size() == 1) {
key = (String) keys.get(0);
index1 = 2;
} else {
key = null;
index1 = 1;
}
msg = new JtMessage (JDOMAdapter.INSERT_ELEMENT);
for (i = 0; i < mapping.length; i++) {
//attrName = (String) iterator.processMessage(new JtMessage (JtIterator.JtNEXT));
attrName = mapping[i].getName();
if (attrName == null || attrName.equals(""))
break;
msg1.setMsgData (attrName);
/*
prop = (PropertyDescriptor) attributes.processMessage(msg1);
if (!(prop.getPropertyType().isPrimitive() ||
String.class.isAssignableFrom (prop.getPropertyType()) ||
"java.util.Date".equals(prop.getPropertyType().getName())))
continue;
*/
msg.setMsgData ("jsp:root/html:html/display:table");
element = new Element ("column");
element.setNamespace(nameSpace);
element.setAttribute("property", attrName);
msg.setMsgContent(element);
if (attrName.equals(key)) {
element.setAttribute("href", "Read" + capFirstLetter (prefix) + ".do?jtMsgId=READ");
element.setAttribute("paramId", "jtMsgContent");
element.setAttribute("paramProperty", attrName);
msg.setMsgAttachment(new Integer (1));
} else
msg.setMsgAttachment(new Integer (index1++));
adapter.processMessage(msg);
index++;
}
return (true);
}
private FormBeanForm retrieveForm (String formName) {
FormBean formBean = new FormBean ();
FormBeanForm form;
JtMessage msg = new JtMessage (JtObject.JtREAD);
if (formName == null)
return null;
msg.setMsgContent(formName);
form = (FormBeanForm) factory.sendMessage(formBean, msg);
if (form == null) {
handleWarning ("retrieveForm: invalid form: " + formName);
return (null);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?