I am using struts2-2.014.
The result xml I get from the below action and Bean:
<result>
<item>Admin</item>
<item><entry><key>user</key><value>Admin</value</entry></item>
<item>Hello</item>
<dmodule>Included here is the proper xml for the document</dmodule>
</result>
The element "dmodule" is the root element of the document from getDmod().
The top level elements are all "item" except for the one from getDmod(). My
question is: Is there a property that can be set whereby "item" is not used for
all other bean methods?
If there is I can essentially pass in parameters to the xsl that way.
struts.xml action:
<action name="updateContent" class="admin.XsltTest">
<result name="success" type="xslt">
<param name="location">/xsl/descriptive.xsl</param>
<param name="matchingPattern">{^/result}</param>
<param name="exposedValue">{user,session,hello,dmod}</param>
</result>
</action>
Bean:
package admin;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.apache.struts2.interceptor.SessionAware;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
import com.opensymphony.xwork2.ActionSupport;
public class XsltTest extends ActionSupport implements SessionAware
{
private Map session;
private String user;
File testXmlFile = new
File("C:\\NewData\\080\\DMC-NFA18NIAPG65AB-000A-E92-00-0000-00000-001A-Z_000.xml");
public String execute() throws Exception
{
System.out.println("In xsl method");
user = (String)session.get("user");
setUser(user);
//
return SUCCESS;
}
public String getHello()
{
return "Hello";
}
public String[] getMonths()
{
String months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "July",
"Aug", "Sep", "Oct", "Nov", "Dec" };
return months;
}
public Document getDmod() throws ParserConfigurationException,
SAXException, IOException
{
// S7ReadXmlFile s7Read = new S7ReadXmlFile(testXmlFile);
// Document doc = new Document().;
System.out.println("in getDmodule;");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
Document doc = factory.newDocumentBuilder().parse(testXmlFile);
return doc;
}
public void setSession(Map session)
{
this.session = session;
}
public Map getSession()
{
return session;
}
public void setUser(String user)
{
this.user = user;
}
public String getUser()
{
return user;
}
}
Craig Christophersen
Software Developer
Synesis7
[email protected]