Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » BIRT » redirect: how?
redirect: how? [message #539650] Fri, 11 June 2010 15:58 Go to next message
Nicola is currently offline NicolaFriend
Messages: 184
Registered: July 2009
Senior Member
Hi,
I need to do a redirect inside an handler (written in Java) on a
beforeOpen event.
If a user has not permission to see a report, then redirect.

Normally I need:

RequestDispatcher dispatcher = request.getRequestDispatcher("/p.jsp");
dispatcher.forward(request, response);

But how to get HttpServletResponse from birt (I use 2.5.2)?

Thank you
Nicola
Re: redirect: how? [message #540905 is a reply to message #539650] Thu, 17 June 2010 14:33 Go to previous message
Jason Weathersby is currently offline Jason WeathersbyFriend
Messages: 9167
Registered: July 2009
Senior Member

You could always use a persistent global variable and then add some
client side script to forward when the report loads. Take a look at the
attached example that uses a report parameter to forward.
//Text Element
<script type="text/javascript">


function forward() {
var temp = new String(location.href);

location.replace("http://www.google.com");

return false;
}
if( <VALUE-OF>params["forward"].value</VALUE-OF> ){
forward();
}
</script>



Note that I also set visibility on the table to not show the data if a
forward is going to happen.

Jason


<?xml version="1.0" encoding="UTF-8"?>
<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.21"
id="1">
<property name="createdBy">Eclipse BIRT Designer Version
2.5.2.v20100208 Build &lt;2.5.2.v20100210-0630></property>
<property name="units">in</property>
<method
name="beforeFactory"><![CDATA[reportContext.getAppContext().put( "TestForward",
"SET");]]></method>
<property name="iconFile">/templates/blank_report.gif</property>
<property name="layoutPreference">auto layout</property>
<property name="bidiLayoutOrientation">ltr</property>
<parameters>
<scalar-parameter name="forward" id="52">
<property name="valueType">static</property>
<property name="dataType">boolean</property>
<property name="distinct">true</property>
<property name="paramType">simple</property>
<property name="controlType">check-box</property>
<structure name="format"/>
</scalar-parameter>
</parameters>
<data-sources>
<oda-data-source
extensionID="org.eclipse.birt.report.data.oda.jdbc" name="Data Source"
id="9">
<property
name="odaDriverClass">org.eclipse.birt.report.data.oda.sampledb.Driver </property>
<property name="odaURL">jdbc:classicmodels:sampledb</property>
<property name="odaUser">ClassicModels</property>
<property name="OdaConnProfileName"></property>
</oda-data-source>
</data-sources>
<data-sets>
<oda-data-set
extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet "
name="Data Set" id="10">
<structure name="cachedMetaData">
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">ORDERNUMBER</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">PRODUCTCODE</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">QUANTITYORDERED</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">4</property>
<property name="name">PRICEEACH</property>
<property name="dataType">float</property>
</structure>
<structure>
<property name="position">5</property>
<property name="name">ORDERLINENUMBER</property>
<property name="dataType">integer</property>
</structure>
</list-property>
</structure>
<property name="dataSource">Data Source</property>
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">ORDERNUMBER</property>
<property name="nativeName">ORDERNUMBER</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">PRODUCTCODE</property>
<property name="nativeName">PRODUCTCODE</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">QUANTITYORDERED</property>
<property name="nativeName">QUANTITYORDERED</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">4</property>
<property name="name">PRICEEACH</property>
<property name="nativeName">PRICEEACH</property>
<property name="dataType">float</property>
</structure>
<structure>
<property name="position">5</property>
<property name="name">ORDERLINENUMBER</property>
<property name="nativeName">ORDERLINENUMBER</property>
<property name="dataType">integer</property>
</structure>
</list-property>
<xml-property name="queryText"><![CDATA[select *
from orderdetails]]></xml-property>
</oda-data-set>
</data-sets>
<styles>
<style name="crosstab" id="4">
<property name="borderBottomColor">#CCCCCC</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">1pt</property>
<property name="borderLeftColor">#CCCCCC</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">1pt</property>
<property name="borderRightColor">#CCCCCC</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">1pt</property>
<property name="borderTopColor">#CCCCCC</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">1pt</property>
</style>
<style name="crosstab-cell" id="5">
<property name="borderBottomColor">#CCCCCC</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">1pt</property>
<property name="borderLeftColor">#CCCCCC</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">1pt</property>
<property name="borderRightColor">#CCCCCC</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">1pt</property>
<property name="borderTopColor">#CCCCCC</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">1pt</property>
</style>
</styles>
<page-setup>
<simple-master-page name="Simple MasterPage" id="2">
<property name="topMargin">1in</property>
<property name="leftMargin">1.25in</property>
<property name="bottomMargin">1in</property>
<property name="rightMargin">1.25in</property>
<page-footer>
<text id="3">
<property name="contentType">html</property>
<text-property
name="content"><![CDATA[<value-of>new Date()</value-of>]]></text-property>
</text>
</page-footer>
</simple-master-page>
</page-setup>
<body>
<text id="6">
<method
name="onPrepare"><![CDATA[reportContext.getAppContext().put( "TestForward",
"SET");]]></method>
<property name="contentType">html</property>
<text-property name="content"><![CDATA[<script
type="text/javascript">


function forward() {
var temp = new String(location.href);

location.replace("http://www.google.com");

return false;
}
if( <VALUE-OF>params["forward"].value</VALUE-OF> ){
forward();
}
</script>

]]></text-property>
</text>
<table id="53">
<property name="dataSet">Data Set</property>
<list-property name="visibility">
<structure>
<property name="format">all</property>
<expression name="valueExpr"
type="javascript">params["forward"].value</expression>
</structure>
</list-property>
<list-property name="boundDataColumns">
<structure>
<property name="name">ORDERNUMBER</property>
<text-property
name="displayName">ORDERNUMBER</text-property>
<expression name="expression"
type="javascript">dataSetRow["ORDERNUMBER"]</expression >
<property name="dataType">integer</property>
</structure>
<structure>
<property name="name">PRODUCTCODE</property>
<text-property
name="displayName">PRODUCTCODE</text-property>
<expression name="expression"
type="javascript">dataSetRow["PRODUCTCODE"]</expression >
<property name="dataType">string</property>
</structure>
<structure>
<property name="name">QUANTITYORDERED</property>
<text-property
name="displayName">QUANTITYORDERED</text-property>
<expression name="expression"
type="javascript">dataSetRow["QUANTITYORDERED"]</expression >
<property name="dataType">integer</property>
</structure>
<structure>
<property name="name">PRICEEACH</property>
<text-property
name="displayName">PRICEEACH</text-property>
<expression name="expression"
type="javascript">dataSetRow["PRICEEACH"]</expression>
<property name="dataType">float</property>
</structure>
<structure>
<property name="name">ORDERLINENUMBER</property>
<text-property
name="displayName">ORDERLINENUMBER</text-property>
<expression name="expression"
type="javascript">dataSetRow["ORDERLINENUMBER"]</expression >
<property name="dataType">integer</property>
</structure>
</list-property>
<column id="82"/>
<column id="83"/>
<column id="84"/>
<column id="85"/>
<column id="86"/>
<header>
<row id="54">
<cell id="55">
<label id="56">
<text-property
name="text">ORDERNUMBER</text-property>
</label>
</cell>
<cell id="57">
<label id="58">
<text-property
name="text">PRODUCTCODE</text-property>
</label>
</cell>
<cell id="59">
<label id="60">
<text-property
name="text">QUANTITYORDERED</text-property>
</label>
</cell>
<cell id="61">
<label id="62">
<text-property
name="text">PRICEEACH</text-property>
</label>
</cell>
<cell id="63">
<label id="64">
<text-property
name="text">ORDERLINENUMBER</text-property>
</label>
</cell>
</row>
</header>
<detail>
<row id="65">
<cell id="66">
<data id="67">
<property
name="resultSetColumn">ORDERNUMBER</property>
</data>
</cell>
<cell id="68">
<data id="69">
<property
name="resultSetColumn">PRODUCTCODE</property>
</data>
</cell>
<cell id="70">
<data id="71">
<property
name="resultSetColumn">QUANTITYORDERED</property>
</data>
</cell>
<cell id="72">
<data id="73">
<property
name="resultSetColumn">PRICEEACH</property>
</data>
</cell>
<cell id="74">
<data id="75">
<property
name="resultSetColumn">ORDERLINENUMBER</property>
</data>
</cell>
</row>
</detail>
<footer>
<row id="76">
<cell id="77"/>
<cell id="78"/>
<cell id="79"/>
<cell id="80"/>
<cell id="81"/>
</row>
</footer>
</table>
</body>
</report>


On 6/11/2010 11:58 AM, nicola wrote:
> Hi,
> I need to do a redirect inside an handler (written in Java) on a
> beforeOpen event.
> If a user has not permission to see a report, then redirect.
>
> Normally I need:
>
> RequestDispatcher dispatcher = request.getRequestDispatcher("/p.jsp");
> dispatcher.forward(request, response);
>
> But how to get HttpServletResponse from birt (I use 2.5.2)?
>
> Thank you
> Nicola
Previous Topic:Access project resources from ODA driver Plug-in
Next Topic:How to disable auto update for the BIRT plugins?
Goto Forum:
  


Current Time: Sat Apr 27 03:16:52 GMT 2024

Powered by FUDForum. Page generated in 0.02681 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top