从另一个JSP引用时更改活动导航选项卡

时间:2017-12-21 21:12:49

标签: html twitter-bootstrap el scriptlet

我正在为一个项目写一些前端。在我的所有页面中,我都有一个导航栏。目前,我只是引用包含导航栏的另一个文件,而不是填满每个JSP / HTML文件开头的大块代码:

# converting into the long format
import pandas as pd
perf_df = (
    pd.DataFrame({
        'accuracy_train': model_perf['acc'],
        'accuracy_validation': model_perf['val_acc'],
        'loss_train': model_perf['loss'],
        'loss_validation': model_perf['val_loss']
    })
    .stack()
    .reset_index()
    .rename(columns={
        'level_0': 'epoch',
        'level_1': 'variable',
        0: 'value'
    })
)

perf_df = pd.concat(
    [
        perf_df,
        perf_df['variable']
        .str
        .extractall(r'(?P<metric>^.*)_(?P<set>.*$)')
        .reset_index()[['metric','set']]   
    ], axis=1
).drop(['variable'], axis=1)

perf_df.head() # result

epoch  value     metric     set
0      0.434349  accuracy   train
0      0.374607  accuracy   validation
0      0.864698  loss       train
0      0.007445  loss       validation
1      0.553727  accuracy   train

# plot it
fig = ff.create_facet_grid(
    perf_df,
    x='epoch',
    y='value',
    facet_row='metric',
    color_name='set',
    scales='free_y',
    ggplot2=True
)

fig['layout'].update(
    height=800, 
    width=1000, 
    yaxis1 = dict(tickformat=".0%"),
    yaxis2 = dict(tickformat=".0%"),
    title='Performance'
)

iplot(fig)

我有两个问题:

(1)我听说使用scriptlet很糟糕。如何用HTML或EL替换它?但更重要的是,

(2)每个页面都有轻微的变化,因为导航栏上的选定页面会有一个来自Bootstrap的class ='active'。有没有办法更改引用的文件,而不实际更改原始文件?

1 个答案:

答案 0 :(得分:0)

我发现JSTL标记与上面的scriptlet完全相同但更好:

<jsp:include page="x.jsp"/>

这解决了我的第一个问题,但没有解决我的第二个问题。我将使用这个,直到发布另一个更好的答案。