jspgenerator.java
来自「Java Pattern Oriented Framework (Jt) 是为了」· Java 代码 · 共 1,639 行 · 第 1/4 页
JAVA
1,639 行
if (elem != null) {
generateInputFields2 (jadapter, formName, operation); // check
attValue = elem.getAttributeValue("action");
Prefix = capFirstLetter (prefix);
if (attValue != null) {
nValue = attValue.replaceAll("#name", Prefix);
elem.setAttribute("action", nValue);
}
}
msg1.setMsgContent ("jsp:root/c:if/c:set");
elem = (Element) factory.sendMessage(jadapter, msg1);
if (elem != null) {
/*
attValue = elem.getAttributeValue("var");
if (attValue != null) {
nValue = attValue.replaceAll("#name", prefix);
elem.setAttribute("var", nValue);
}
*/
elem.setAttribute("var", formName);
}
factory.sendMessage(jadapter, new JtMessage (JDOMAdapter.SAVE_FILE));
//System.out.println("content:" + jadapter.getContent());
}
private String replaceString (String str, String substr, String newsubstr) {
int index;
int length;
String segment1;
String result;
if (str == null)
return (null);
if (substr == null || substr.equals ("") ||
newsubstr == null)
return (str);
result = null;
for (;;) {
index = str.indexOf(substr, 0);
if (index < 0) {
if (result == null)
result = str;
else
result = result + str;
break;
}
length = substr.length();
segment1 = str.substring(0, index);
str = str.substring(index+length);
if (result == null)
result = segment1 + newsubstr;
else
result = result + segment1 + newsubstr;
}
return (result);
}
/*
private void updateOperationColumn (JDOMAdapter jadapter) {
JtMessage msg = new JtMessage (JDOMAdapter.FIND_ELEMENT);
Element elem;
String tmp;
if (jadapter == null)
return;
msg.setMsgContent ("jsp:root/html:html/display:table/display:column/c:out");
elem = (Element) factory.sendMessage(jadapter, msg);
if (elem != null)
elem.setAttribute("value", "${row.email}");
msg.setMsgContent ("jsp:root/html:html/display:table/display:column");
elem = (Element) factory.sendMessage(jadapter, msg);
if (elem == null)
return;
tmp = elem.getText();
tmp = tmp.replaceAll("#name", capFirstLetter (prefix));
//tmp = replaceString(tmp, "#key", "<c:out value=\"${row.email1}\"/>");
//System.out.println (tmp);
//elem.setText(tmp);
}
*/
private void updateOperationColumn (String path) {
JtFile file;
String content;
String tmp;
JtMessage msg = new JtMessage (JtFile.JtSAVE_STRING);
String key0;
if (path == null)
return;
file = new JtFile ();
file.setName(path);
content = (String) factory.sendMessage(file, new JtMessage (JtFile.JtCONVERT_TO_STRING));
if (content == null)
return;
tmp = content.replaceAll("#name", capFirstLetter (prefix));
if (tmp == null)
return;
//if (key != null)
// tmp = replaceString (tmp, "#key", "<c:out value=\"${row." + key + "}\"/>");
if (keys != null && keys.size() > 0) {
tmp = replaceString (tmp, "#key0", "<c:out value=\"${row." + keys.get(0) + "}\"/>");
} else {
tmp = replaceString (tmp, "#key0", "");
}
if (keys != null && keys.size() > 1) {
tmp = replaceString (tmp, "#key1", "<c:out value=\"${row." + keys.get(1) + "}\"/>");
} else {
tmp = replaceString (tmp, "#key1", "");
}
if (keys != null && keys.size() > 2) {
tmp = replaceString (tmp, "#key2", "<c:out value=\"${row." + keys.get(2) + "}\"/>");
} else {
tmp = replaceString (tmp, "#key2", "");
}
msg.setMsgContent(tmp);
factory.sendMessage(file, msg);
}
private void updateDisplayTag () {
JDOMAdapter jadapter = new JDOMAdapter ();
JtMessage msg = new JtMessage (JDOMAdapter.READ_FILE);
JtMessage msg1 = new JtMessage (JDOMAdapter.FIND_ELEMENT);
Element elem;
String attValue, nValue;
String Prefix;
if (path == null) {
handleError ("Attribute path needs to be set.");
return;
}
/*
if (className == null) {
handleError ("Attribute className needs to be set.");
return;
}
*/
if (formName == null) {
handleError ("Attribute formName needs to be set.");
return;
}
jadapter.setPath(path);
factory.sendMessage(jadapter, msg);
msg1.setMsgContent ("jsp:root/html:html/display:table");
elem = (Element) factory.sendMessage(jadapter, msg1);
if (elem != null) {
//generateColumns (jadapter, className); // check
generateColumns (jadapter, formName);
factory.sendMessage(jadapter, new JtMessage (JDOMAdapter.SAVE_FILE));
updateOperationColumn (path);
}
//System.out.println("content:" + jadapter.getContent());
}
/*
private InputStream determineResourceStream (String path) {
if (path == null)
return (null);
ServletContext context = (ServletContext) JtObject.getObjContext().getServletContext();
return (context.getResourceAsStream(path));
}
*/
private boolean readTemplate (JDOMAdapter templateAdapter, String templateName) {
InputStream resourceStream;
if (templateAdapter == null || templateName == null)
return (false);
resourceStream = this.getClass().getClassLoader().getResourceAsStream (templateName);
if (resourceStream == null) {
handleError ("Resource not found:" + templateName);
return (false);
}
templateAdapter.setInputStream(resourceStream);
factory.sendMessage (templateAdapter, new JtMessage (JDOMAdapter.READ_STREAM));
return (true);
}
private void updateLinks () {
JDOMAdapter jadapter = new JDOMAdapter ();
JtMessage msg = new JtMessage (JDOMAdapter.READ_FILE);
JtMessage msg1 = new JtMessage (JDOMAdapter.FIND_ELEMENTS);
Element elem;
String attValue, nValue;
String Prefix;
List elementList;
Iterator iterator;
if (path == null) {
handleError ("Attribute path needs to be set.");
return;
}
jadapter.setPath(path);
factory.sendMessage(jadapter, msg);
msg1.setMsgContent ("link");
elementList = (List) factory.sendMessage(jadapter, msg1);
if (elementList == null)
return;
iterator = elementList.iterator();
while (iterator.hasNext()) {
elem = (Element) iterator.next();
attValue = elem.getAttributeValue("page");
if (attValue != null) {
nValue = attValue.replaceAll("#name", capFirstLetter (prefix));
elem.setAttribute("page", nValue);
}
//updateOperationColumn (path);
}
factory.sendMessage(jadapter, new JtMessage (JDOMAdapter.SAVE_FILE));
System.out.println("content:" + jadapter.getContent());
}
// Process object messages
public Object processMessage (Object message) {
String msgid = null;
JtMessage msg = (JtMessage) message;
if (msg == null)
return null;
msgid = (String) msg.getMsgId ();
if (msgid == null)
return null;
factory.setStopClass(JtObject.class);
// Generate descriptors
if (msgid.equals (JtObject.JtACTIVATE)) {
return (generateJsp1 ());
}
if (msgid.equals (JspGenerator.UPDATE_FORM)) {
updateForm ((String) msg.getMsgContent ());
return (null);
}
if (msgid.equals (JspGenerator.UPDATE_DISPLAY_TAG)) {
updateDisplayTag ();
return (null);
}
if (msgid.equals (JspGenerator.UPDATE_LINKS)) {
updateLinks ();
return (null);
}
// Let the superclass handle all other messages
return (super.processMessage (message));
}
public static void main(String[] args) {
JtFactory factory = new JtFactory (); // Jt Factory
String reply;
JspGenerator jspGenerator;
InputStream istream = null;
JtMessage msg;
//JtKeyboard keyboard = new JtKeyboard ();
//String key;
//factory.setLogging(true);
if (args.length < 1) {
System.err.println ("Usage: java Jt.struts.JspGenerator filename");
return;
}
jspGenerator = (JspGenerator) factory.createObject (JspGenerator.JtCLASS_NAME);
//jspGenerator.setClassName(args[0]);
try {
istream = new FileInputStream (args[0]);
} catch (Exception e) {
e.printStackTrace ();
System.exit (1);
}
jspGenerator.setInputStream(istream);
msg = new JtMessage (JtObject.JtACTIVATE);
reply = (String) factory.sendMessage (jspGenerator, msg);
//jspGenerator.processMessage(new JtMessage (JtObject.JtPRINT));
System.out.println (reply);
jspGenerator.setPath("/tmp/CreateMemberForm1.jsp");
jspGenerator.setPrefix("Prefix");
//jspGenerator.processMessage(new JtMessage (jspGenerator.UPDATE_FORM));
factory.removeObject (jspGenerator);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?